xmake.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package("simpleini")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/brofield/simpleini")
  4. set_description("Cross-platform C++ library providing a simple API to read and write INI-style configuration files.")
  5. set_license("MIT")
  6. set_urls("https://github.com/brofield/simpleini/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/brofield/simpleini.git")
  8. add_versions("v4.25", "10001ee1486ae55259a5408786262bc0f72d699bc9637d536ebc62765d3ecd3b")
  9. add_versions("v4.22", "b3a4b8f9e03aabd491aa55fd57457115857b9b9c7ecf4abf7ff035ca9d026eb8")
  10. add_versions("v4.19", "dc10df3fa363be2c57627d52cbb1b5ddd0689d474bf13908e822c1522df8377e")
  11. add_configs("convert", {description = "Unicode converter to use.", type = "string", values = {"none", "generic", "icu", "win32"}})
  12. on_load(function (package)
  13. if package:config("convert") == nil then
  14. if package:is_plat("windows") then
  15. package:config_set("convert", "win32")
  16. else
  17. package:config_set("convert", "generic")
  18. end
  19. end
  20. if package:config("convert") == "none" then
  21. package:add("defines", "SI_NO_CONVERSION")
  22. elseif package:config("convert") == "generic" then
  23. package:add("defines", "SI_CONVERT_GENERIC")
  24. package:add("deps", "convertutf")
  25. elseif package:config("convert") == "icu" then
  26. package:add("defines", "SI_CONVERT_ICU")
  27. package:add("deps", "icu4c")
  28. elseif package:config("convert") == "win32" then
  29. package:add("defines", "SI_CONVERT_WIN32")
  30. end
  31. end)
  32. on_install(function (package)
  33. os.cp("SimpleIni.h", package:installdir("include"))
  34. end)
  35. on_test(function (package)
  36. assert(package:check_cxxsnippets({test = [[
  37. void test() {
  38. CSimpleIniA ini;
  39. ini.SetUnicode();
  40. }
  41. ]]}, {configs = {languages = "c++11"}, includes = "SimpleIni.h"}))
  42. end)