xmake.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package("ctrack")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/Compaile/ctrack")
  4. set_description("A lightweight, high-performance C++ benchmarking and tracking library for effortless function profiling in both development and production environments.")
  5. set_license("MIT")
  6. add_urls("https://github.com/Compaile/ctrack/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/Compaile/ctrack.git")
  8. add_versions("v1.0.2", "cbe19d0a852e43da4fe675abc751464cd871b5a50af2ef7f315c0d0d68690092")
  9. add_configs("parallel", {description = "Enable parallel processing", default = false, type = "boolean"})
  10. add_deps("cmake")
  11. on_load(function (package)
  12. if package:config("parallel") then
  13. package:add("deps", "tbb")
  14. else
  15. package:add("defines", "CTRACK_DISABLE_EXECUTION_POLICY")
  16. end
  17. end)
  18. on_install(function (package)
  19. local configs = {"-DDISABLE_EXAMPLES=ON"}
  20. table.insert(configs, "-DDISABLE_PAR=" .. (package:config("parallel") and "OFF" or "ON"))
  21. import("package.tools.cmake").install(package, configs)
  22. end)
  23. on_test(function (package)
  24. assert(package:check_cxxsnippets({test = [[
  25. void test() {
  26. CTRACK;
  27. }
  28. ]]}, {configs = {languages = "c++17"}, includes = "ctrack.hpp"}))
  29. end)