From 1da1c032e37ba4ecdc2808fe16dfd663034bdb71 Mon Sep 17 00:00:00 2001 From: Montana Low Date: Mon, 29 Apr 2024 14:48:45 -0700 Subject: [PATCH] intel/m1 compatibility --- src/booster.rs | 2 +- xgboost-sys/build.rs | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/booster.rs b/src/booster.rs index d33f23b..b4a36bc 100644 --- a/src/booster.rs +++ b/src/booster.rs @@ -148,7 +148,7 @@ impl Booster { dmats }; - let mut bst = Booster::new_with_cached_dmats(¶ms.booster_params, &cached_dmats)?; + let bst = Booster::new_with_cached_dmats(¶ms.booster_params, &cached_dmats)?; for i in 0..params.boost_rounds as i32 { if let Some(eval_sets) = params.evaluation_sets { let mut dmat_eval_results = bst.eval_set(eval_sets, i)?; diff --git a/xgboost-sys/build.rs b/xgboost-sys/build.rs index 93ed420..81c0a43 100644 --- a/xgboost-sys/build.rs +++ b/xgboost-sys/build.rs @@ -33,17 +33,21 @@ fn main() { #[cfg(not(feature = "cuda"))] let mut dst = Config::new(&xgb_root); - let dst = dst.uses_cxx11() + let mut dst = dst.uses_cxx11() .define("BUILD_STATIC_LIB", "ON"); #[cfg(target_os = "macos")] - let dst = - dst - .define("CMAKE_C_COMPILER", "/opt/homebrew/opt/llvm/bin/clang") - .define("CMAKE_CXX_COMPILER", "/opt/homebrew/opt/llvm/bin/clang++") - .define("OPENMP_LIBRARIES", "/opt/homebrew/opt/llvm/lib") - .define("OPENMP_INCLUDES", "/opt/homebrew/opt/llvm/include"); - + { + let path = PathBuf::from("/opt/homebrew/"); // check for m1 vs intel config + if let Ok(_dir) = std::fs::read_dir(&path) { + dst = + dst + .define("CMAKE_C_COMPILER", "/opt/homebrew/opt/llvm/bin/clang") + .define("CMAKE_CXX_COMPILER", "/opt/homebrew/opt/llvm/bin/clang++") + .define("OPENMP_LIBRARIES", "/opt/homebrew/opt/llvm/lib") + .define("OPENMP_INCLUDES", "/opt/homebrew/opt/llvm/include"); + }; + } let dst = dst.build(); let xgb_root = xgb_root.canonicalize().unwrap();