2
0

xmake.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package("libspng")
  2. set_homepage("https://libspng.org")
  3. set_description("Simple, modern libpng alternative")
  4. set_license("BSD-2-Clause")
  5. set_urls("https://github.com/randy408/libspng/archive/refs/tags/$(version).tar.gz",
  6. "https://github.com/randy408/libspng.git")
  7. add_versions("v0.7.4", "47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487")
  8. add_versions("v0.7.1", "0726a4914ad7155028f3baa94027244d439cd2a2fbe8daf780c2150c4c951d8e")
  9. add_configs("cmake", {description = "Use cmake build system", default = false, type = "boolean"})
  10. if is_plat("linux", "bsd") then
  11. add_syslinks("m")
  12. end
  13. add_deps("zlib")
  14. on_load(function (package)
  15. if package:config("cmake") then
  16. package:add("deps", "cmake")
  17. end
  18. if not package:config("shared") then
  19. package:add("defines", "SPNG_STATIC")
  20. end
  21. end)
  22. on_install(function (package)
  23. if package:config("cmake") then
  24. local configs = {"-DBUILD_EXAMPLES=OFF"}
  25. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"))
  26. if package:config("shared") then
  27. table.join2(configs, {"-DSPNG_SHARED=ON", "-DSPNG_STATIC=OFF"})
  28. else
  29. table.join2(configs, {"-DSPNG_SHARED=OFF", "-DSPNG_STATIC=ON"})
  30. end
  31. import("package.tools.cmake").install(package, configs)
  32. else
  33. io.writefile("xmake.lua", [[
  34. add_rules("mode.debug", "mode.release")
  35. add_requires("zlib")
  36. target("spng")
  37. set_kind("$(kind)")
  38. add_files("spng/*.c")
  39. add_headerfiles("spng/*.h")
  40. add_packages("zlib")
  41. if is_kind("static") then
  42. add_defines("SPNG_STATIC")
  43. end
  44. if is_plat("linux", "bsd") then
  45. add_syslinks("m")
  46. end
  47. ]])
  48. import("package.tools.xmake").install(package)
  49. end
  50. end)
  51. on_test(function (package)
  52. assert(package:has_cfuncs("spng_decode_image", {includes = "spng.h"}))
  53. end)