xmake.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package("lodepng")
  2. set_homepage("https://lodev.org/lodepng/")
  3. set_description("PNG encoder and decoder in C and C++.")
  4. set_license("zlib")
  5. add_urls("https://github.com/lvandeve/lodepng.git")
  6. add_versions("2025.05.06", "17d08dd26cac4d63f43af217ebd70318bfb8189c")
  7. add_patches("2025.05.06", "https://patch-diff.githubusercontent.com/raw/lvandeve/lodepng/pull/182.diff", "ec7f2ab3f2515cef3e422a41d8fcc215295ba1d0d761f52f54f199a6aa584ba3")
  8. add_configs("cpp", {description = "Enable C++ support.", default = true, type = "boolean"})
  9. on_install(function (package)
  10. local src = "lodepng.cpp"
  11. if not package:config("cpp") then
  12. src = "lodepng.c"
  13. os.mv("lodepng.cpp", "lodepng.c")
  14. end
  15. io.writefile("xmake.lua", [[
  16. add_rules("mode.release", "mode.debug")
  17. target("lodepng")
  18. set_kind("$(kind)")
  19. add_files("]] .. src .. [[")
  20. add_headerfiles("lodepng.h")
  21. if is_plat("windows") and is_kind("shared") then
  22. add_rules("utils.symbols.export_all")
  23. end
  24. ]])
  25. import("package.tools.xmake").install(package)
  26. end)
  27. on_test(function (package)
  28. assert(package:has_cxxfuncs("lodepng_decode_memory", {includes = "lodepng.h"}))
  29. end)