xmake.lua 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package("raylib")
  2. set_homepage("http://www.raylib.com")
  3. set_description("A simple and easy-to-use library to enjoy videogames programming.")
  4. set_license("zlib")
  5. if is_plat("macosx") and is_arch("x86_64") then
  6. add_urls("https://github.com/raysan5/raylib/releases/download/$(version).tar.gz", {version = function (version)
  7. if version:ge("3.5.0") then
  8. return version .. "/raylib-" .. version .. "_macos"
  9. else
  10. return version .. "/raylib-" .. version .. "-macOS"
  11. end
  12. end})
  13. add_versions("2.5.0", "e9ebdf70ad4912dc9f3c7965dc702d5c61f2841aeae521e8dd3b0a96a9d82d58")
  14. add_versions("3.0.0", "8244898b09887f29baa9325b5ae47c30ec0f45dc15b4f740178c65af068b3141")
  15. add_versions("3.5.0", "9b9be75fe1b231225c91a6fcf5ed9c24cbf03c6193f917e40e4655ef27f281e2")
  16. add_versions("3.7.0", "439dc1851dd1b7f385f4caf4f5c7191dda90add9d8d531e5e74702315e432003")
  17. add_versions("4.0.0", "be73734815a7ef4eb3130f4a2ecaabb2059602745ae6ce1173201a74034c2ec9")
  18. add_versions("4.2.0", "5f79c103b82c577698b01c7b2c166d0c2b51615886b7fabdc671199f0aaf4b38")
  19. add_versions("4.5.0", "63deb87ffc32e5eb2023ba763aaea2cb5f41bd37bbc07760651efe251bd76f3d")
  20. add_versions("5.0", "48e477d3dde2e20220572c9f93a332c48cf378fc1e1f205454b975180085565c")
  21. add_versions("5.5", "930c67b676963c6cffbd965814664523081ecbf3d30fc9df4211d0064aa6ba39")
  22. else
  23. add_urls("https://github.com/raysan5/raylib/archive/$(version).tar.gz",
  24. "https://github.com/raysan5/raylib.git")
  25. add_versions("2.5.0", "fa947329975bdc9ea284019f0edc30ca929535dc78dcf8c19676900d67a845ac")
  26. add_versions("3.0.0", "164d1cc1710bb8e711a495e84cc585681b30098948d67d482e11dc37d2054eab")
  27. add_versions("3.5.0", "761985876092fa98a99cbf1fef7ca80c3ee0365fb6a107ab901a272178ba69f5")
  28. add_versions("3.7.0", "7bfdf2e22f067f16dec62b9d1530186ddba63ec49dbd0ae6a8461b0367c23951")
  29. add_versions("4.0.0", "11f6087dc7bedf9efb3f69c0c872f637e421d914e5ecea99bbe7781f173dc38c")
  30. add_versions("4.2.0", "676217604a5830cb4aa31e0ede0e4233c942e2fc5c206691bded58ebcd82a590")
  31. add_versions("4.5.0", "163378604f2293ea5ebf3238f50c8926addde72d1a6bc8998ac2e96074ba8af8")
  32. add_versions("5.0", "98f049b9ea2a9c40a14e4e543eeea1a7ec3090ebdcd329c4ca2cf98bc9793482")
  33. add_versions("5.5", "aea98ecf5bc5c5e0b789a76de0083a21a70457050ea4cc2aec7566935f5e258e")
  34. end
  35. if not (is_plat("macosx") and is_arch("x86_64")) then
  36. add_deps("cmake >=3.11")
  37. end
  38. if is_plat("macosx") then
  39. add_frameworks("CoreVideo", "CoreGraphics", "AppKit", "IOKit", "CoreFoundation", "Foundation")
  40. elseif is_plat("windows", "mingw") then
  41. add_syslinks("gdi32", "user32", "winmm", "shell32")
  42. elseif is_plat("linux") then
  43. add_syslinks("pthread", "dl", "m")
  44. add_deps("libx11", "libxrandr", "libxrender", "libxinerama", "libxcursor", "libxi", "libxfixes", "libxext")
  45. elseif is_plat("android") then
  46. add_syslinks("log", "android", "EGL", "GLESv2", "OpenSLES", "m")
  47. end
  48. add_deps("opengl", {optional = true})
  49. on_install("macosx|x86_64", function (package)
  50. os.cp("include/*.h", package:installdir("include"))
  51. os.cp("lib/libraylib.a", package:installdir("lib"))
  52. end)
  53. on_install("windows", "linux", "macosx|arm64", "mingw", "wasm", "android", function (package)
  54. local configs = {"-DBUILD_EXAMPLES=OFF"}
  55. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"))
  56. table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
  57. if package:is_plat("wasm") then
  58. table.insert(configs, "-DPLATFORM=Web")
  59. elseif package:is_plat("android") then
  60. table.insert(configs, "-DPLATFORM=Android")
  61. table.insert(configs, "-DANDROID_ABI=" .. (package:arch() or "arm64-v8a"))
  62. table.insert(configs, "-DOPENGL_API=ES2")
  63. table.insert(configs, "-DUSE_EXTERNAL_GLFW=OFF")
  64. end
  65. import("package.tools.cmake").install(package, configs, {packagedeps = {"libx11", "libxrender", "libxrandr", "libxinerama", "libxcursor", "libxi", "libxfixes", "libxext"}})
  66. end)
  67. on_test(function (package)
  68. assert(package:check_cxxsnippets({test = [[
  69. void test() {
  70. InitWindow(100, 100, "hello world!");
  71. }
  72. ]]}, {includes = {"raylib.h"}, configs = {languages = "cxx11"}}))
  73. end)