xmake.lua 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. package("ndarray")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/ndarray/ndarray")
  4. set_description("NumPy-friendly multidimensional arrays in C++")
  5. set_urls("https://github.com/ndarray/ndarray/archive/refs/tags/$(version).tar.gz")
  6. add_versions("1.6.4", "a125dfcb3c5bdfd1ef9055cd4f2c3de60ad02abc53279dd25e28d155e786ebe0")
  7. add_deps("boost")
  8. on_install("macosx", "linux", "windows", "mingw", "cross", "bsd", function (package)
  9. os.cp("include", package:installdir())
  10. end)
  11. on_test(function (package)
  12. assert(package:check_cxxsnippets({test = [[
  13. #include <ndarray.h>
  14. #include <cassert>
  15. static void test() {
  16. using namespace ndarray;
  17. Array<double,3,3> a = allocate(makeVector(5,6,8));
  18. for (Array<double,3,3>::Iterator i = a.begin(); i != a.end(); ++i) {
  19. for (Array<double,3,3>::Reference::Iterator j = i->begin(); j != i->end(); ++j) {
  20. for (Array<double,3,3>::Reference::Reference::Iterator k = j->begin(); k != j->end(); ++k) {
  21. assert(*k == a[i - a.begin()][j - i->begin()][k - j->begin()]);
  22. }
  23. }
  24. }
  25. }
  26. ]]}, {configs = {languages = "c++14"}}))
  27. end)