xmake.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package("cppitertools")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://twitter.com/cppitertools")
  4. set_description("Implementation of python itertools and builtin iteration functions for C++17")
  5. set_license("BSD-2-Clause")
  6. add_urls("https://github.com/ryanhaining/cppitertools/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/ryanhaining/cppitertools.git")
  8. add_versions("v2.3", "419c8192691859650cca8ae7c7a8d633af42dfc453af87b7645338536c6e9e82")
  9. add_versions("v2.2", "d4e796c9d8ec769fbd68df92943d238d0c43667307995ede058069e770827481")
  10. add_versions("v2.1", "f7bcd4531e37083609bb92c3f0ae03b56e7197002d0dc9c695104dcef445f2ab")
  11. add_configs("boost", {description = "For zip_longest", default = false, type = "boolean"})
  12. on_load(function (package)
  13. if package:config("boost") then
  14. package:add("deps", "boost")
  15. end
  16. end)
  17. on_install(function (package)
  18. if package:version() and package:version():gt("2.1") then
  19. os.cp("cppitertools", package:installdir("include"))
  20. else
  21. os.cp("*.hpp", package:installdir("include/cppitertools"))
  22. os.cp("internal", package:installdir("include/cppitertools"))
  23. end
  24. end)
  25. on_test(function (package)
  26. assert(package:check_cxxsnippets({test = [[
  27. #include <cppitertools/itertools.hpp>
  28. void test() {
  29. for (auto i : iter::range(10, 15)) {}
  30. }
  31. ]]}, {configs = {languages = "c++17"}}))
  32. end)