2
0

xmake.lua 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package("commonlibsse-ng")
  2. set_homepage("https://github.com/CharmedBaryon/CommonLibSSE-NG")
  3. set_description("A reverse engineered library for Skyrim Special Edition.")
  4. set_license("MIT")
  5. add_urls("https://github.com/CharmedBaryon/CommonLibSSE-NG/archive/$(version).zip",
  6. "https://github.com/CharmedBaryon/CommonLibSSE-NG.git")
  7. add_versions("v3.7.0", "c2fc2b5ac1c67ad4779bd0570c95fe494e0724f957a61880fa42cf74d1edce14")
  8. add_versions("v3.6.0", "6f84c36f5747cff73d6a95bc7b9de84b11601648b218fd3e69edc884cc94a5a8")
  9. add_versions("v3.5.6", "a3e1d4ec7496adca8310613fe75a2e08a9dbf562a9febec584b4e79aacc92bd3")
  10. add_versions("v3.5.5", "5b00de66b9b8bc300244f14f1a281f26961931ba28ed0f4c9cce3a30a77c784a")
  11. add_configs("skyrim_se", {description = "Enable runtime support for Skyrim SE", default = true, type = "boolean"})
  12. add_configs("skyrim_ae", {description = "Enable runtime support for Skyrim AE", default = true, type = "boolean"})
  13. add_configs("skyrim_vr", {description = "Enable runtime support for Skyrim VR", default = true, type = "boolean"})
  14. add_configs("skse_xbyak", {description = "Enable trampoline support for Xbyak", default = false, type = "boolean"})
  15. add_deps("fmt", "rapidcsv")
  16. add_deps("spdlog", { configs = { header_only = false, fmt_external = true } })
  17. add_syslinks("version", "user32", "shell32", "ole32", "advapi32")
  18. on_load("windows|x64", function(package)
  19. if package:config("skyrim_se") then
  20. package:add("defines", "ENABLE_SKYRIM_SE=1")
  21. end
  22. if package:config("skyrim_ae") then
  23. package:add("defines", "ENABLE_SKYRIM_AE=1")
  24. end
  25. if package:config("skyrim_vr") then
  26. package:add("defines", "ENABLE_SKYRIM_VR=1")
  27. end
  28. if package:config("skse_xbyak") then
  29. package:add("defines", "SKSE_SUPPORT_XBYAK=1")
  30. package:add("deps", "xbyak")
  31. end
  32. package:add("defines", "HAS_SKYRIM_MULTI_TARGETING=1")
  33. end)
  34. on_install("windows|x64", function(package)
  35. os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
  36. local configs = {}
  37. configs.skyrim_se = package:config("skyrim_se")
  38. configs.skyrim_ae = package:config("skyrim_ae")
  39. configs.skyrim_vr = package:config("skyrim_vr")
  40. configs.skse_xbyak = package:config("skse_xbyak")
  41. import("package.tools.xmake").install(package, configs)
  42. end)
  43. on_test("windows|x64", function(package)
  44. assert(package:check_cxxsnippets({test = [[
  45. #include <SKSE/SKSE.h>
  46. SKSEPluginLoad(const SKSE::LoadInterface*) {
  47. return true;
  48. };
  49. ]]}, { configs = { languages = "c++20" } }))
  50. end)