xmake.lua 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package("pixman")
  2. set_homepage("https://cairographics.org/")
  3. set_description("Low-level library for pixel manipulation.")
  4. set_license("MIT")
  5. add_urls("https://cairographics.org/releases/pixman-$(version).tar.gz", {alias = "home"})
  6. add_urls("https://www.x.org/archive/individual/lib/pixman-$(version).tar.gz", {alias = "home"})
  7. add_urls("https://gitlab.freedesktop.org/pixman/pixman/-/archive/pixman-$(version)/pixman-pixman-$(version).tar.gz", {alias = "gitlab"})
  8. add_urls("https://gitlab.freedesktop.org/pixman/pixman.git", {alias = "git"})
  9. add_versions("gitlab:0.42.0", "45c6462f6d6441923d4c17d06fa50ce066f0ceff0fc84af8d342df63c1079151")
  10. add_versions("gitlab:0.42.2", "4191a5084bae000a61e3513b06027b6f8f559d17d61769ed9de27dfb0cec8699")
  11. add_versions("gitlab:0.43.4", "2af0acd451e22ae9d86d3c8aa45fcc19e4cc33e86bec311e5328cc2171ff1720")
  12. add_versions("gitlab:0.46.2", "b40c00a15cf514bab2ea89301037def830d590a8e649950059c45a9c1b819bd0")
  13. add_versions("home:0.42.0", "07f74c8d95e4a43eb2b08578b37f40b7937e6c5b48597b3a0bb2c13a53f46c13")
  14. add_versions("home:0.42.2", "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e")
  15. add_versions("home:0.43.2", "ea79297e5418fb528d0466e8b5b91d1be88857fa3706f49777b2925a72ae9924")
  16. add_versions("home:0.43.4", "a0624db90180c7ddb79fc7a9151093dc37c646d8c38d3f232f767cf64b85a226")
  17. add_versions("home:0.46.2", "3e0de5ba6e356916946a3d958192f15505dcab85134771bfeab4ce4e29bbd733")
  18. add_versions("git:0.46.2", "pixman-0.46.2")
  19. if is_plat("wasm") then
  20. add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
  21. end
  22. add_deps("meson", "ninja")
  23. add_includedirs("include", "include/pixman-1")
  24. if on_check then
  25. on_check(function (package)
  26. if package:version():lt("0.43.0") and package:is_arch("arm.*") then
  27. assert(false, "package(pixman <0.43.0): Unsupported arm")
  28. end
  29. end)
  30. end
  31. on_install(function (package)
  32. if package:is_plat("windows") and package:config("shared") then
  33. package:add("defines", "PIXMAN_API=__declspec(dllimport)")
  34. end
  35. local configs = {
  36. "-Dopenmp=disabled",
  37. "-Dlibpng=disabled",
  38. "-Dgtk=disabled",
  39. }
  40. table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
  41. if package:is_plat("android") then
  42. local ndk = package:toolchain("ndk"):config("ndk")
  43. if ndk then
  44. local cpu_features = path.join(ndk, "sources", "android", "cpufeatures")
  45. if os.isdir(cpu_features) then
  46. table.insert(configs, "-Dcpu-features-path=" .. path.unix(cpu_features))
  47. end
  48. end
  49. elseif package:is_plat("windows") and package:is_arch("arm.*") then
  50. table.join2(configs, {"-Darm-simd=disabled", "-Dneon=disabled", "-Da64-neon=disabled", "-Dmmx=disabled"})
  51. end
  52. io.replace("meson.build", "subdir('test')", "", {plain = true})
  53. io.replace("meson.build", "subdir('demos')", "", {plain = true})
  54. import("package.tools.meson").install(package, configs)
  55. end)
  56. on_test(function (package)
  57. assert(package:has_cfuncs("pixman_image_create_solid_fill", {includes = "pixman.h"}))
  58. end)