xmake.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package("libpam")
  2. set_homepage("https://github.com/linux-pam/linux-pam")
  3. set_description("Pluggable Authentication Modules for Linux")
  4. add_urls("https://github.com/linux-pam/linux-pam/archive/refs/tags/$(version).tar.gz",
  5. "https://github.com/linux-pam/linux-pam.git")
  6. add_versions("v1.7.1", "82aadd97eb697965b577069c12046a4dd1be68361a9978c708698d2a1ee9b6d1")
  7. add_configs("i18n", {description = "Enable i18n support.", default = true, type = "boolean"})
  8. add_configs("audit", {description = "Enable audit support.", default = true, type = "boolean"})
  9. add_configs("econf", {description = "Enable libeconf support.", default = false, type = "boolean"})
  10. add_deps("meson", "ninja")
  11. on_load(function(package)
  12. if package:config("audit") then
  13. package:add("deps", "audit")
  14. end
  15. if package:config("econf") then
  16. package:add("deps", "libeconf")
  17. end
  18. end)
  19. on_install("linux", function (package)
  20. local configs = {
  21. '-Ddocs=disabled',
  22. '-Dxtests=false',
  23. '-Dexamples=false'
  24. }
  25. table.insert(configs, "-Di18n=" .. (package:config("i18n") and "enabled" or "disabled"))
  26. table.insert(configs, "-Daudit=" .. (package:config("audit") and "enabled" or "disabled"))
  27. table.insert(configs, "-Deconf=" .. (package:config("econf") and "enabled" or "disabled"))
  28. io.replace("meson.build", "subdir('po')", "", {plain = true})
  29. io.replace("meson.build", "subdir('tests')", "", {plain = true})
  30. io.replace("meson.build", "subdir('modules')", "", {plain = true})
  31. io.replace("meson.build", "subdir('conf' / 'pam_conv1')", "", {plain = true})
  32. local packagedeps = {}
  33. if package:config("audit") then
  34. table.insert(packagedeps, "libcap-ng")
  35. end
  36. import("package.tools.meson").install(package, configs, {packagedeps = packagedeps})
  37. end)
  38. on_test(function (package)
  39. assert(package:has_cfuncs("pamc_start", {includes = "security/pam_client.h"}))
  40. end)