Skip to content

Commit 244d553

Browse files
committed
Updated to use c++17
1 parent 747631d commit 244d553

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

xgboost-sys/build.rs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ extern crate bindgen;
22
extern crate cmake;
33

44
use cmake::Config;
5-
use std::process::Command;
65
use std::env;
76
use std::path::{Path, PathBuf};
7+
use std::process::Command;
88

99
fn main() {
1010
let target = env::var("TARGET").unwrap();
@@ -24,29 +24,27 @@ fn main() {
2424
// CMake
2525
#[cfg(feature = "cuda")]
2626
let dst = Config::new(&xgb_root)
27-
.uses_cxx11()
2827
.define("BUILD_STATIC_LIB", "ON")
2928
.define("USE_CUDA", "ON")
3029
.define("BUILD_WITH_CUDA", "ON")
31-
.define("BUILD_WITH_CUDA_CUB", "ON");
30+
.define("BUILD_WITH_CUDA_CUB", "ON")
31+
.define("CMAKE_CXX_STANDARD", "17");
3232

3333
#[cfg(not(feature = "cuda"))]
3434
let mut dst = Config::new(&xgb_root);
3535

3636
#[allow(unused_mut)]
37-
let mut dst = dst.uses_cxx11()
38-
.define("BUILD_STATIC_LIB", "ON");
37+
let mut dst = dst.define("BUILD_STATIC_LIB", "ON").define("CMAKE_CXX_STANDARD", "17");
3938

4039
#[cfg(target_os = "macos")]
4140
{
4241
let path = PathBuf::from("/opt/homebrew/"); // check for m1 vs intel config
4342
if let Ok(_dir) = std::fs::read_dir(&path) {
44-
dst =
45-
dst
46-
.define("CMAKE_C_COMPILER", "/opt/homebrew/opt/llvm/bin/clang")
47-
.define("CMAKE_CXX_COMPILER", "/opt/homebrew/opt/llvm/bin/clang++")
48-
.define("OPENMP_LIBRARIES", "/opt/homebrew/opt/llvm/lib")
49-
.define("OPENMP_INCLUDES", "/opt/homebrew/opt/llvm/include");
43+
dst = dst
44+
.define("CMAKE_C_COMPILER", "/opt/homebrew/opt/llvm/bin/clang")
45+
.define("CMAKE_CXX_COMPILER", "/opt/homebrew/opt/llvm/bin/clang++")
46+
.define("OPENMP_LIBRARIES", "/opt/homebrew/opt/llvm/lib")
47+
.define("OPENMP_INCLUDES", "/opt/homebrew/opt/llvm/include");
5048
};
5149
}
5250
let dst = dst.build();
@@ -56,16 +54,14 @@ fn main() {
5654
let bindings = bindgen::Builder::default()
5755
.header("wrapper.h")
5856
.blocklist_item("std::__1.*")
59-
.clang_args(&["-x", "c++", "-std=c++11"])
57+
.clang_args(&["-x", "c++", "-std=c++17"])
6058
.clang_arg(format!("-I{}", xgb_root.join("include").display()))
6159
.clang_arg(format!("-I{}", xgb_root.join("rabit/include").display()))
6260
.clang_arg(format!("-I{}", xgb_root.join("dmlc-core/include").display()));
6361

6462
#[cfg(feature = "cuda")]
6563
let bindings = bindings.clang_arg("-I/usr/local/cuda/include");
66-
let bindings = bindings
67-
.generate()
68-
.expect("Unable to generate bindings.");
64+
let bindings = bindings.generate().expect("Unable to generate bindings.");
6965

7066
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
7167
bindings

0 commit comments

Comments
 (0)