xmake.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package("python2")
  2. set_kind("binary")
  3. set_homepage("https://www.python.org/")
  4. set_description("The python programming language.")
  5. if is_host("windows") then
  6. if os.arch() == "x64" then
  7. add_urls("https://gitlab.com/xmake-mirror/python-releases/raw/master/python-$(version).amd64.zip")
  8. add_versions("2.7.15", "b9d8157fe2ca58f84d29a814bedf1d304d2277ad02f0930acd22e2ce7367b77e")
  9. else
  10. add_urls("https://gitlab.com/xmake-mirror/python-releases/raw/master/python-$(version).win32.zip")
  11. add_versions("2.7.15", "f34e2555c4fde5d7d746e6a0bbfc9151435f3f5c3eaddfc046ec0993b7cc9660")
  12. end
  13. else
  14. set_urls("https://www.python.org/ftp/python/$(version)/Python-$(version).tgz")
  15. add_versions("2.7.15", "18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db")
  16. end
  17. if is_host("macosx", "linux") then
  18. add_deps("openssl")
  19. end
  20. on_load(function (package)
  21. if is_host("windows") then
  22. package:addenv("PATH", path.join("share", package:name(), package:version_str()))
  23. else
  24. package:addenv("PATH", path.join("share", package:name(), package:version_str(), "bin"))
  25. end
  26. end)
  27. on_install("windows", function (package)
  28. local installdir = package:installdir("share", package:name(), package:version_str())
  29. os.cp("*", installdir)
  30. os.cp("python.exe", path.join(installdir, "python2.exe"))
  31. end)
  32. on_install("macosx", "linux", function (package)
  33. -- init configs
  34. local configs = {"--enable-ipv6", "--without-ensurepip"}
  35. table.insert(configs, "--datadir=" .. package:installdir("share"))
  36. table.insert(configs, "--datarootdir=" .. package:installdir("share"))
  37. -- add openssl libs path for detecting
  38. io.gsub("setup.py", "/usr/local/ssl", package:dep("openssl"):installdir())
  39. -- unset these so that installing pip and setuptools puts them where we want
  40. -- and not into some other Python the user has installed.
  41. import("package.tools.autoconf").install(package, configs, {envs = {PYTHONHOME = "", PYTHONPATH = ""}})
  42. end)
  43. on_test(function (package)
  44. os.vrun("python2 --version")
  45. end)