xmake.lua 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package("libxaw")
  2. set_homepage("https://gitlab.freedesktop.org/xorg/lib/libxaw")
  3. set_description("X.Org: X Athena Widget Set")
  4. set_urls("https://www.x.org/archive/individual/lib/libXaw-$(version).tar.gz")
  5. add_versions("1.0.14", "59cfed2712cc80bbfe62dd1aacf24f58d74a76dd08329a922077b134a8d8048f")
  6. add_versions("1.0.16", "012f90adf8739f2f023d63a5fee1528949cf2aba92ef7ac1abcfc2ae9cf28798")
  7. if is_plat("macosx", "linux") then
  8. add_deps("libxmu", "libxpm", "libx11", "libxt", "libxext", "libice", "libsm")
  9. end
  10. if is_plat("linux") then
  11. add_extsources("apt::libxaw7-dev", "pacman::libxaw")
  12. end
  13. on_install("macosx", "linux", function (package)
  14. local configs = {"--sysconfdir=" .. package:installdir("etc"),
  15. "--localstatedir=" .. package:installdir("var"),
  16. "--disable-dependency-tracking",
  17. "--disable-silent-rules",
  18. "--disable-specs"}
  19. -- fix undefined reference on macOS
  20. if package:is_plat("macosx") then
  21. local cflags = {}
  22. local ldflags = {}
  23. for _, dep in ipairs(package:orderdeps()) do
  24. local fetchinfo = dep:fetch()
  25. if fetchinfo then
  26. for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
  27. table.insert(cflags, "-I" .. includedir)
  28. end
  29. for _, linkdir in ipairs(fetchinfo.linkdirs) do
  30. table.insert(ldflags, "-L" .. linkdir)
  31. end
  32. for _, link in ipairs(fetchinfo.links) do
  33. table.insert(ldflags, "-l" .. link)
  34. end
  35. end
  36. end
  37. import("package.tools.autoconf").install(package, configs, {cflags = cflags, ldflags = ldflags})
  38. else
  39. import("package.tools.autoconf").install(package, configs)
  40. end
  41. end)
  42. on_test(function (package)
  43. assert(package:has_cfuncs("XawInitializeWidgetSet", {includes = "X11/Xaw/XawInit.h"}))
  44. end)