xmake.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package("premake5")
  2. set_kind("binary")
  3. set_homepage("https://premake.github.io/")
  4. set_description("Premake - Powerfully simple build configuration")
  5. set_urls("https://github.com/premake/premake-core.git")
  6. add_versions("2022.11.17", "1c22240cc86cc3a12075cc0fc8b07ab209f99dd3") -- v5.0.0-beta2
  7. if is_plat("linux") and linuxos.name() == "fedora" then
  8. add_deps("libuuid")
  9. end
  10. on_install("@linux", "@macosx", "@windows", function (package)
  11. local configs = {"-f", "Bootstrap.mak", package:plat()}
  12. if package:is_plat("linux", "macosx") then
  13. if linuxos.name() == "fedora" then
  14. local cflags = {}
  15. local ldflags = {}
  16. local depinfo = package:dep("libuuid"):fetch()
  17. for _, includedir in ipairs(depinfo.includedirs or depinfo.sysincludedirs) do
  18. table.insert(cflags, "-I" .. includedir)
  19. end
  20. for _, linkdir in ipairs(depinfo.linkdirs) do
  21. table.insert(ldflags, "-L" .. linkdir)
  22. end
  23. io.replace("Bootstrap.mak", "-luuid", table.concat(table.join(cflags, ldflags), " ") .. " -luuid")
  24. io.replace("Bootstrap.mak", "$(MAKE) -C build/bootstrap -j`getconf _NPROCESSORS_ONLN` config=$(CONFIG)", "", {plain = true})
  25. import("package.tools.make").build(package, configs)
  26. import("package.tools.make").build(package, {"-C", "build/bootstrap", "configs=release", "CPPFLAGS=" .. table.concat(cflags, " "), "LDFLAGS=" .. table.concat(ldflags, " ")})
  27. else
  28. import("package.tools.make").build(package, configs)
  29. end
  30. else
  31. import("package.tools.nmake").build(package, configs)
  32. end
  33. os.mv("bin/release/premake5" .. (package:is_plat("windows") and ".exe" or ""), package:installdir("bin"))
  34. end)
  35. on_test(function (package)
  36. os.vrun("premake5 --version")
  37. end)