xmake.lua 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package("scons")
  2. set_kind("binary")
  3. set_homepage("https://scons.org")
  4. set_description("A software construction tool")
  5. add_urls("https://github.com/SCons/scons/archive/refs/tags/$(version).zip",
  6. "https://github.com/SCons/scons.git")
  7. add_versions("4.9.1", "074d8ceb95b6f0cbf91ec15ba087635cff0e9d06d02d0f838a852496781e8cc6")
  8. add_versions("4.8.0", "2309f77eede26a494d697a18b6bb803ddb4ba20875091fb82da504a3665241cd")
  9. add_versions("4.7.0", "c783ac12040d1682b81ffd153b48ac1dd9a0eff5a9fbfbb55d86c5d186e88e4a")
  10. add_versions("4.6.0", "ae729515e951cde252205c1c5a7f237025ce204db8e8b9a145616614d87c6f86")
  11. add_versions("4.1.0", "106259e92ba001feae5b50175bcec92306d0420bb08229fb037440cf303fcfc3")
  12. add_versions("4.3.0", "c8cb3be5861c05a46250c60938857b9711c29a1500001da187e36dc05ee70295")
  13. add_deps("python 3.x", {kind = "binary"})
  14. on_install("@windows", "@linux", "@macosx", "@msys", "@bsd", function (package)
  15. local python_version = package:dep("python"):version()
  16. local scons_version = package:version()
  17. local scons_egg = "SCons-" .. scons_version:major() .. "." .. scons_version:minor() .. "." .. scons_version:patch() .. "-py" .. python_version:major() .. "." .. python_version:minor() .. ".egg"
  18. local pyver = ("python%d.%d"):format(python_version:major(), python_version:minor())
  19. local PYTHONPATH = package:installdir("lib")
  20. local PYTHONPATH1 = path.join(PYTHONPATH, pyver)
  21. PYTHONPATH = path.join(PYTHONPATH, "site-packages", scons_egg)
  22. PYTHONPATH1 = path.join(PYTHONPATH1, "site-packages", scons_egg)
  23. package:addenv("PYTHONPATH", PYTHONPATH, PYTHONPATH1)
  24. -- setup.py install needs these
  25. if package:version():ge("4.3.0") then
  26. io.writefile("scons.1", "")
  27. io.writefile("scons-time.1", "")
  28. io.writefile("sconsign.1", "")
  29. else
  30. io.writefile("build/doc/man/scons.1", "")
  31. io.writefile("build/doc/man/scons-time.1", "")
  32. io.writefile("build/doc/man/sconsign.1", "")
  33. end
  34. -- fix ml64 support for x64
  35. -- @see https://stackoverflow.com/questions/58919970/building-x64-nsis-using-vs2012
  36. io.replace("SCons/Tool/masm.py", "'ml'", "'ml64' if env.get('TARGET_ARCH')=='amd64' else 'ml'", {plain = true})
  37. os.vrunv("python", {"setup.py", "install", "--prefix", package:installdir()})
  38. if is_host("windows", "msys") then
  39. os.mv(package:installdir("Scripts", "*"), package:installdir("bin"))
  40. os.rmdir(package:installdir("Scripts"))
  41. end
  42. end)
  43. on_test(function (package)
  44. os.vrun("scons --version")
  45. end)