xmake.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package("mlpack")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://www.mlpack.org/")
  4. set_description("mlpack: a fast, header-only C++ machine learning library")
  5. set_license("BSD-3-Clause")
  6. add_urls("https://github.com/mlpack/mlpack/archive/refs/tags/$(version).tar.gz",
  7. "https://github.com/mlpack/mlpack.git")
  8. add_versions("4.3.0", "08cd54f711fde66fc3b6c9db89dc26776f9abf1a6256c77cfa3556e2a56f1a3d")
  9. if is_plat("linux") then
  10. add_syslinks("m", "pthread")
  11. end
  12. add_configs("openmp", {description = "Enable OpenMP", default = true, type = "boolean"})
  13. add_deps("armadillo", "cereal", "ensmallen", "stb")
  14. on_load(function(package)
  15. if package:config("openmp") then
  16. if is_plat("windows") then
  17. package:add("deps", "openmp", {configs = { feature = "llvm" }})
  18. else
  19. package:add("deps", "openmp")
  20. end
  21. end
  22. end)
  23. on_install("windows|x64", "windows|x86", "macosx", "linux", function (package)
  24. os.cp("src/mlpack/methods", package:installdir("include/mlpack"))
  25. os.cp("src/mlpack/core", package:installdir("include/mlpack"))
  26. os.cp("src/mlpack/*.hpp", package:installdir("include/mlpack"))
  27. os.cp("src/mlpack.hpp", package:installdir("include"))
  28. end)
  29. on_test(function (package)
  30. assert(package:check_cxxsnippets({test = [[
  31. #include <mlpack.hpp>
  32. using namespace mlpack;
  33. void test() {
  34. arma::mat data;
  35. arma::rowvec responses;
  36. LinearRegression lr(data, responses);
  37. arma::vec parameters = lr.Parameters();
  38. }
  39. ]]}, {configs = {languages = "cxx17"}}))
  40. end)