xmake.lua 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package("floatengine")
  2. set_homepage("https://github.com/Fls-Float/FloatEngine")
  3. set_description("A high-performance, cross-platform C++ game engine.")
  4. set_license("MIT")
  5. add_urls("https://github.com/fls-float/FloatEngine.git")
  6. add_versions("2025.12.20", "d3754c2b8235fe1920aea65cfd7cd9247c758408")
  7. add_patches("2025.12.20", "patches/2025.12.20/cleanup.patch", "55ba6f8e4fa3855d9e998d381a148cf31a977e99174c27a33753095275994cc5")
  8. add_patches("2025.12.20", "patches/2025.12.20/fix-include.patch", "6bb236de206b6b4b0773a03007acae8095e215a54f5add9279446a4c0613703b")
  9. add_patches("2025.12.20", "patches/2025.12.20/fix-mingw-gcc15.patch", "252675e4f9b0f9531efb4243fe5819edb1aa9ea13d0b422904d07347041d276c")
  10. add_patches("2025.12.20", "patches/2025.12.20/fix-template.patch", "66450b0e49549d602e7436d234b46af83e779778398b4d2bb4fc9b5376143388")
  11. add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
  12. add_deps("minizip-ng", {configs = {bzip2 = true}})
  13. add_deps("lua", "libcurl", "slikenet", "nlohmann_json", "nativefiledialog-extended", "sol2")
  14. add_deps("fls-float-raylib", "fls-float-rlimgui")
  15. if is_plat("windows", "mingw") then
  16. add_syslinks("user32", "kernel32", "ws2_32", "iphlpapi")
  17. end
  18. on_install("windows", "mingw", function (package)
  19. os.rmdir("FloatEngine/gui")
  20. io.writefile("xmake.lua", [[
  21. set_languages("c11", "c++17")
  22. add_rules("mode.release", "mode.debug")
  23. add_requires("minizip-ng", {configs = {bzip2 = true}})
  24. add_requires("lua", "libcurl", "slikenet", "nlohmann_json", "nativefiledialog-extended", "sol2")
  25. add_requires("fls-float-raylib", "fls-float-rlimgui")
  26. add_packages("minizip-ng", "lua", "libcurl", "slikenet", "nlohmann_json", "nativefiledialog-extended", "sol2")
  27. add_packages("fls-float-raylib", "fls-float-rlimgui")
  28. set_encodings("utf-8")
  29. target("floatengine")
  30. set_kind("$(kind)")
  31. add_files("FloatEngine/*.cpp",
  32. "FloatEngine/*.c")
  33. add_headerfiles("(FloatEngine/*.h)",
  34. "(FloatEngine/*.hpp)")
  35. add_includedirs("FloatEngine")
  36. add_syslinks("user32", "kernel32", "ws2_32", "iphlpapi")
  37. add_defines("WIN32_LEAN_AND_MEAN", "NOMINMAX")
  38. ]])
  39. import("package.tools.xmake").install(package)
  40. end)
  41. on_test(function (package)
  42. assert(package:check_cxxsnippets({test = [[
  43. void test() {
  44. Sprite sprite = Sprite();
  45. size_t w = sprite.FrameCount();
  46. }
  47. ]]}, {configs = {languages = "c++17"}, includes = "FloatEngine/Sprite.h"}))
  48. end)