xmake.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package("checkpolicy")
  2. set_kind("binary")
  3. set_homepage("https://github.com/SELinuxProject/selinux")
  4. set_description("SELinux policy compiler.")
  5. set_license("GPL-2.0")
  6. add_urls("https://github.com/SELinuxProject/selinux/releases/download/$(version)/checkpolicy-$(version).tar.gz")
  7. add_versions("3.9", "dd85b0173ca6e96b22ebf472bcbccf04eb10e1aa07add8f1b7e0e9e8e995e027")
  8. add_deps("flex", "bison")
  9. on_load(function (package)
  10. package:add("deps", "libsepol >=" .. package:version_str())
  11. package:add("deps", "libselinux >=" .. package:version_str())
  12. end)
  13. on_install("linux", function (package)
  14. import("package.tools.make")
  15. local configs = {"PREFIX="}
  16. table.insert(configs, "DEBUG=" .. (package:is_debug() and "1" or "0"))
  17. table.insert(configs, "DESTDIR=" .. package:installdir())
  18. local envs = make.buildenvs(package)
  19. local cflags = {}
  20. local ldflags = {}
  21. for _, dep in ipairs(package:orderdeps()) do
  22. local fetchinfo = dep:fetch()
  23. if fetchinfo then
  24. for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
  25. table.insert(cflags, "-I" .. includedir)
  26. end
  27. for _, linkdir in ipairs(fetchinfo.linkdirs) do
  28. table.insert(ldflags, "-L" .. linkdir)
  29. end
  30. end
  31. end
  32. envs.CFLAGS = envs.CFLAGS .. " " .. table.concat(cflags, " ")
  33. envs.LDFLAGS = envs.LDFLAGS .. " " .. table.concat(ldflags, " ")
  34. make.build(package, configs, {envs = envs})
  35. table.insert(configs, "install")
  36. make.make(package, configs, {envs = envs})
  37. end)
  38. on_test(function (package)
  39. assert(os.isexec(package:installdir("bin/checkpolicy")), "checkpolicy executable not found!")
  40. end)