xmake.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package("libgd")
  2. set_homepage("http://libgd.org/")
  3. set_description("GD is an open source code library for the dynamic creation of images by programmers.")
  4. add_urls("https://github.com/libgd/libgd/archive/refs/tags/gd-$(version).tar.gz")
  5. add_versions("2.3.2", "dcc22244d775f469bee21dce1ea42552adbb72ba0cc423f9fa6a64601b3a1893")
  6. add_patches("2.3.2", path.join(os.scriptdir(), "patches", "2.3.2", "build.patch"), "87ae73df7ce126f8b31e1988aae3ecf0638eeb1c0a085689bd82045704c8171c")
  7. local configdeps = {png = "libpng",
  8. liq = "libimagequant",
  9. jpeg = "libjpeg-turbo",
  10. tiff = "libtiff",
  11. freetype = "freetype",
  12. webp = "libwebp",
  13. avif = "libavif",
  14. heif = "libheif"}
  15. for conf, _ in pairs(configdeps) do
  16. add_configs(conf, {description = "Enable " .. conf .. " support.", default = (conf == "png"), type = "boolean"})
  17. end
  18. add_deps("cmake", "zlib")
  19. on_load("windows", "linux", "macosx", function (package)
  20. for conf, dep in pairs(configdeps) do
  21. if package:config(conf) then
  22. package:add("deps", dep)
  23. end
  24. end
  25. if package:is_plat("windows") and not package:config("shared") then
  26. package:add("defines", "BGDWIN32")
  27. package:add("defines", "NONDLL")
  28. end
  29. end)
  30. on_install("windows", "linux", "macosx", function (package)
  31. local configs = {"-DBUILD_TEST=OFF", "-DBUILD_PROGRAMS=OFF", "-DBUILD_DOCS=OFF", "-DBUILD_EXAMPLES=OFF"}
  32. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
  33. table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
  34. table.insert(configs, "-DBUILD_STATIC_LIBS=" .. (package:config("shared") and "OFF" or "ON"))
  35. for conf, dep in pairs(configdeps) do
  36. if package:config(conf) then
  37. table.insert(configs, "-DENABLE_" .. conf:upper() .. "=ON")
  38. end
  39. end
  40. import("package.tools.cmake").install(package, configs)
  41. end)
  42. on_test(function (package)
  43. assert(package:has_cfuncs("gdImageDestroy", {includes = "gd.h"}))
  44. end)