@@ -2,9 +2,9 @@ extern crate bindgen;
2
2
extern crate cmake;
3
3
4
4
use cmake:: Config ;
5
- use std:: process:: Command ;
6
5
use std:: env;
7
6
use std:: path:: { Path , PathBuf } ;
7
+ use std:: process:: Command ;
8
8
9
9
fn main ( ) {
10
10
let target = env:: var ( "TARGET" ) . unwrap ( ) ;
@@ -24,29 +24,27 @@ fn main() {
24
24
// CMake
25
25
#[ cfg( feature = "cuda" ) ]
26
26
let dst = Config :: new ( & xgb_root)
27
- . uses_cxx11 ( )
28
27
. define ( "BUILD_STATIC_LIB" , "ON" )
29
28
. define ( "USE_CUDA" , "ON" )
30
29
. 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" ) ;
32
32
33
33
#[ cfg( not( feature = "cuda" ) ) ]
34
34
let mut dst = Config :: new ( & xgb_root) ;
35
35
36
36
#[ 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" ) ;
39
38
40
39
#[ cfg( target_os = "macos" ) ]
41
40
{
42
41
let path = PathBuf :: from ( "/opt/homebrew/" ) ; // check for m1 vs intel config
43
42
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" ) ;
50
48
} ;
51
49
}
52
50
let dst = dst. build ( ) ;
@@ -56,16 +54,14 @@ fn main() {
56
54
let bindings = bindgen:: Builder :: default ( )
57
55
. header ( "wrapper.h" )
58
56
. blocklist_item ( "std::__1.*" )
59
- . clang_args ( & [ "-x" , "c++" , "-std=c++11 " ] )
57
+ . clang_args ( & [ "-x" , "c++" , "-std=c++17 " ] )
60
58
. clang_arg ( format ! ( "-I{}" , xgb_root. join( "include" ) . display( ) ) )
61
59
. clang_arg ( format ! ( "-I{}" , xgb_root. join( "rabit/include" ) . display( ) ) )
62
60
. clang_arg ( format ! ( "-I{}" , xgb_root. join( "dmlc-core/include" ) . display( ) ) ) ;
63
61
64
62
#[ cfg( feature = "cuda" ) ]
65
63
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." ) ;
69
65
70
66
let out_path = PathBuf :: from ( env:: var ( "OUT_DIR" ) . unwrap ( ) ) ;
71
67
bindings
0 commit comments