xmake.lua 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package("jsoncons")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://danielaparker.github.io/jsoncons/")
  4. set_description("A C++, header-only library for constructing JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, JMESPath, CSV, MessagePack, CBOR, BSON, UBJSON")
  5. set_license("BSL-1.0")
  6. set_urls("https://github.com/danielaparker/jsoncons/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/danielaparker/jsoncons.git")
  8. add_versions("v1.4.3", "6cc79df3bf10f3ecd5fbdd0a64deaaad35beda2767f8697e261e1af11e1e3526")
  9. add_versions("v1.3.2", "f22fb163df1a12c2f9ee5f95cad9fc37c6cfbefe0ae6f30aba7440832ef70fbe")
  10. add_versions("v1.3.0", "7a485c2af0ff214b62bb00f5a1487e5a0c4997eadc6ee9155ce3e8c9d05b9d7a")
  11. add_versions("v1.2.0", "3bdc0c8ceba1943b5deb889559911ebe97377971453a11227ed0a51a05e5d5d8")
  12. add_versions("v1.1.0", "073f6f40d92715f4540e43997df22a89018afb8f25914f9d889bb21be818532e")
  13. add_versions("v1.0.0", "5b602e131761a3eb0fc85043a67e8006f04fa0ce2f2012aeca48371cd99ec85f")
  14. add_versions("v0.178.0", "c531b4288bb08c9c2b36fba53f568bc800e93656830bcffc18a87a3af1f46290")
  15. add_versions("v0.177.0", "a381d58489f143a3a515484f4ad6e32ae4d977033e1a455fecf8cdc4e2c9a49e")
  16. add_versions("v0.176.0", "2eb50b5cbe204265fef96c052511ed6e3b8808935c6e2c8d28e0aba7b08fda33")
  17. add_versions("v0.170.2", "0ff0cd407f6b27dea66a3202bc8bc2e043ec1614419e76840eda5b5f8045a43a")
  18. add_configs("cmake", {description = "Use cmake build system", default = true, type = "boolean"})
  19. if on_check then
  20. on_check("android", function (package)
  21. local ndk = package:toolchain("ndk")
  22. local ndk_sdkver = ndk:config("ndk_sdkver")
  23. assert(ndk_sdkver and tonumber(ndk_sdkver) >= 28, "package(jsoncons): require ndk api level >= 28")
  24. end)
  25. end
  26. on_load(function (package)
  27. if package:config("cmake") then
  28. package:add("deps", "cmake")
  29. end
  30. end)
  31. on_install(function (package)
  32. if package:config("cmake") then
  33. import("package.tools.cmake").install(package, {
  34. "-DJSONCONS_BUILD_TESTS=OFF",
  35. "-DCMAKE_POLICY_DEFAULT_CMP0057=NEW",
  36. })
  37. else
  38. os.cp("include", package:installdir())
  39. end
  40. end)
  41. on_test(function (package)
  42. assert(package:has_cxxfuncs("jsoncons::json::parse(\"\")", {configs = {languages = "c++11"}, includes = {"jsoncons/json.hpp", "jsoncons_ext/jsonpath/jsonpath.hpp"}}))
  43. end)