xmake.lua 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package("cmake")
  2. set_kind("binary")
  3. set_homepage("https://cmake.org")
  4. set_description("A cross-platform family of tool designed to build, test and package software")
  5. if is_host("macosx") then
  6. add_urls("https://cmake.org/files/v$(version).tar.gz", {version = function (version)
  7. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-macos-universal" or "-Darwin-x86_64")
  8. end})
  9. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version).tar.gz", {version = function (version)
  10. return version .. "/cmake-" .. version .. (version:ge("3.20") and "-macos-universal" or "-Darwin-x86_64")
  11. end})
  12. add_versions("3.11.4", "2b5eb705f036b1906a5e0bce996e9cd56d43d73bdee8318ece3e5ce31657b812")
  13. add_versions("3.15.4", "adfbf611d21daa83b9bf6d85ab06a455e481b63a38d6e1270d563b03d4e5f829")
  14. add_versions("3.18.4", "9d27049660474cf134ab46fa0e0db771b263313fcb8ba82ee8b2d1a1a62f8f20")
  15. add_versions("3.21.0", "c1c6f19dfc9c658a48b5aed22806595b2337bb3aedb71ab826552f74f568719f")
  16. add_versions("3.22.1", "9ba46ce69d524f5bcdf98076a6b01f727604fb31cf9005ec03dea1cf16da9514")
  17. add_versions("3.24.1", "71bb8db69826d74c395a3c3bbf8b773dbe9f54a2c7331266ba70da303e9c97a1")
  18. add_versions("3.24.2", "efb11a78c064dd7c54a50b8da247254d252112c402c6e48cb7db3f9c84a4e5ad")
  19. add_versions("3.26.4", "5417fb979c1f82aaffe4420112e2c84562c024b6683161afb520c9e378161340")
  20. add_versions("3.28.1", "0e0942bb5ed7ee1aeda0c00b3cb7738f2590865f1d69fe1d5212cbc26fc040a5")
  21. elseif is_host("linux") then
  22. if os.arch():find("arm64.*") then
  23. add_urls("https://cmake.org/files/v$(version)-aarch64.tar.gz", {version = function (version)
  24. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux")
  25. end})
  26. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version)-aarch64.tar.gz", {version = function (version)
  27. return version .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux")
  28. end})
  29. add_versions("3.24.2", "5f1c0d49bac89915b5c68811c2430e5de6c8e606785b9f2919eabee86c2f12b4")
  30. add_versions("3.26.4", "1c9843c92f40bee1a16baa12871693d3e190c9a222259a89e406d4d9aae6cf74")
  31. add_versions("3.28.1", "e84d88e46ed8c85fbe259bcd4ca07df7a928df87e84013e0da34d91b01a25d71")
  32. else
  33. add_urls("https://cmake.org/files/v$(version)-x86_64.tar.gz", {version = function (version)
  34. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux")
  35. end})
  36. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version)-x86_64.tar.gz", {version = function (version)
  37. return version .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux")
  38. end})
  39. add_versions("3.11.4", "6dab016a6b82082b8bcd0f4d1e53418d6372015dd983d29367b9153f1a376435")
  40. add_versions("3.15.4", "7c2b17a9be605f523d71b99cc2e5b55b009d82cf9577efb50d4b23056dee1109")
  41. add_versions("3.18.4", "149e0cee002e59e0bb84543cf3cb099f108c08390392605e944daeb6594cbc29")
  42. add_versions("3.21.0", "d54ef6909f519740bc85cec07ff54574cd1e061f9f17357d9ace69f61c6291ce")
  43. add_versions("3.22.1", "73565c72355c6652e9db149249af36bcab44d9d478c5546fd926e69ad6b43640")
  44. add_versions("3.24.1", "827bf068cfaa23a9fb95f990c9f8a7ed8f2caeb3af62b5c0a2fed7a8dd6dde3e")
  45. add_versions("3.24.2", "71a776b6a08135092b5beb00a603b60ca39f8231c01a0356e205e0b4631747d9")
  46. add_versions("3.26.4", "ba1e0dcc710e2f92be6263f9617510b3660fa9dc409ad2fb8190299563f952a0")
  47. add_versions("3.28.1", "f76398c24362ad87bad1a3d6f1e8f4377632b5b1c360c4ba1fd7cd205fd9d8d4")
  48. end
  49. elseif is_host("windows") then
  50. if os.arch() == "x64" then
  51. add_urls("https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  52. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-x86_64" or "-win64-x64")
  53. end})
  54. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  55. return version .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-x86_64" or "-win64-x64")
  56. end})
  57. add_versions("3.11.4", "d3102abd0ded446c898252b58857871ee170312d8e7fd5cbff01fbcb1068a6e5")
  58. add_versions("3.15.4", "5bb49c0274800c38833e515a01af75a7341db68ea82c71856bb3cf171d2068be")
  59. add_versions("3.18.4", "a932bc0c8ee79f1003204466c525b38a840424d4ae29f9e5fb88959116f2407d")
  60. add_versions("3.21.0", "c7b88c907a753f4ec86e43ddc89f91f70bf1b011859142f7f29e6d51ea4abb3c")
  61. add_versions("3.22.1", "35fbbb7d9ffa491834bbc79cdfefc6c360088a3c9bf55c29d111a5afa04cdca3")
  62. add_versions("3.24.1", "c1b17431a16337d517f7ba78c7067b6f143a12686cb8087f3dd32f3fa45f5aae")
  63. add_versions("3.24.2", "6af30354eecbb7113b0f0142d13c03d21abbc9f4dbdcddaf88df1f9ca1bc4d6f")
  64. add_versions("3.26.4", "62c35427104a4f8205226f72708d71334bd36a72cf72c60d0e3a766d71dcc78a")
  65. add_versions("3.28.1", "671332249bc7cc7424523d6c2b5edd3e3de90a43b8b82e8782f42da4fe4c562d")
  66. elseif os.arch() == "x86" then
  67. add_urls("https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  68. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-i386" or "-win32-x86")
  69. end})
  70. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  71. return version .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-i386" or "-win32-x86")
  72. end})
  73. add_versions("3.11.4", "b068001ff879f86e704977c50a8c5917e4b4406c66242366dba2674abe316579")
  74. add_versions("3.15.4", "19c2bfd26c4de4d8046dd5ad6de95b57a2556559ec81b13b94e63ea4ae49b3f2")
  75. add_versions("3.18.4", "4c519051853686927f87df99669ada3ff15a3086535a7131892febd7c6e2f122")
  76. add_versions("3.21.0", "11ee86b7f9799724fc16664c63e308bfe3fbc22c9df8ef4955ad4b248f3e680b")
  77. add_versions("3.22.1", "f53494e3b35e5a1177ad55c28763eb5bb45772c1d80778c0f96c45ce4376b6e8")
  78. add_versions("3.24.1", "a0b894e2a814d2353f1e581eb6ca3c878a39c071624495729dbcf9978e1579f2")
  79. add_versions("3.24.2", "52f174dc7f52a9c496c7a49ee35456466c07c8ce29aa2092f4b4536ce5d7ed57")
  80. add_versions("3.26.4", "342ca44f494985f8ef43676eb8a0404b2c68321036e28aa221ceab51d377b158")
  81. add_versions("3.28.1", "e9591cfdb1d394eee84acdecf880cbd91cf0707dfd0d58bf3796b88475f46cb9")
  82. elseif os.arch() == "arm64" then
  83. add_urls("https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  84. return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. "-windows-arm64"
  85. end})
  86. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version)
  87. return version .. "/cmake-" .. version .. "-windows-arm64"
  88. end})
  89. add_versions("3.28.1", "a839b8d32c11b24f078142b5b8c3361a955ebc65788f0f0353b2121fe2f74e49")
  90. end
  91. else
  92. add_urls("https://github.com/Kitware/CMake/releases/download/v$(version)/cmake-$(version).tar.gz")
  93. add_versions("3.18.4", "597c61358e6a92ecbfad42a9b5321ddd801fc7e7eca08441307c9138382d4f77")
  94. add_versions("3.21.0", "4a42d56449a51f4d3809ab4d3b61fd4a96a469e56266e896ce1009b5768bd2ab")
  95. add_versions("3.22.1", "0e998229549d7b3f368703d20e248e7ee1f853910d42704aa87918c213ea82c0")
  96. add_versions("3.24.1", "4931e277a4db1a805f13baa7013a7757a0cbfe5b7932882925c7061d9d1fa82b")
  97. add_versions("3.24.2", "0d9020f06f3ddf17fb537dc228e1a56c927ee506b486f55fe2dc19f69bf0c8db")
  98. add_versions("3.26.4", "313b6880c291bd4fe31c0aa51d6e62659282a521e695f30d5cc0d25abbd5c208")
  99. add_versions("3.28.1", "15e94f83e647f7d620a140a7a5da76349fc47a1bfed66d0f5cdee8e7344079ad")
  100. end
  101. if is_plat("mingw") and is_subhost("msys") then
  102. add_extsources("pacman::cmake")
  103. elseif is_plat("linux") then
  104. add_extsources("pacman::cmake", "apt::cmake")
  105. elseif is_plat("macosx") then
  106. add_extsources("brew::cmake")
  107. end
  108. on_install("@macosx", function (package)
  109. os.cp("CMake.app/Contents/bin", package:installdir())
  110. os.cp("CMake.app/Contents/share", package:installdir())
  111. end)
  112. on_install("@linux", "@windows", "@msys", "@cygwin", function (package)
  113. os.cp("bin", package:installdir())
  114. os.cp("share", package:installdir())
  115. end)
  116. on_install("@bsd", function (package)
  117. import("core.base.option")
  118. os.vrunv("sh", {"./bootstrap", "--parallel=" .. (option.get("jobs") or tostring(os.default_njob())), "--prefix=" .. package:installdir()})
  119. import("package.tools.make").install(package)
  120. end)
  121. on_test(function (package)
  122. os.vrun("cmake --version")
  123. end)