@@ -150,6 +150,7 @@ fn main() {
150
150
. header ( "../rustllvm/ArchiveWrapper.cpp" )
151
151
. clang_arg ( "-DBINDGEN_NO_TLS" )
152
152
. clang_args ( & [ "-x" , "c++" ] )
153
+ . enable_cxx_namespaces ( )
153
154
. rust_target ( bindgen:: RustTarget :: Nightly )
154
155
. whitelist_recursively ( false )
155
156
. whitelist_type ( "(LLVM)?Rust.*" )
@@ -182,7 +183,6 @@ fn main() {
182
183
"LLVMTwineRef" ,
183
184
"LLVMTypeRef" ,
184
185
"LLVMValueRef" ,
185
- // https://github.com/rust-lang-nursery/rust-bindgen/issues/1164.
186
186
] . into_iter ( ) {
187
187
builder = builder
188
188
. whitelist_type ( visible_type) ;
@@ -216,6 +216,7 @@ fn main() {
216
216
"RustStringRef" ,
217
217
"llvm::DIBuilder" ,
218
218
"llvm::DiagnosticInfo" ,
219
+ "llvm::LLVMContext" ,
219
220
"llvm::OperandBundleDef" ,
220
221
"llvm::SMDiagnostic" ,
221
222
// https://github.com/rust-lang-nursery/rust-bindgen/issues/1164.
@@ -264,7 +265,9 @@ fn main() {
264
265
// https://github.com/rust-lang-nursery/rust-bindgen/issues/1161.
265
266
"llvm::CallingConv::.*" ,
266
267
// https://github.com/rust-lang-nursery/rust-bindgen/issues/1164.
267
- "llvm::LLVMContext.*" ,
268
+ // Opens the whole namespace, wtf?
269
+ "llvm::LLVMContext__bindgen_ty_1" ,
270
+ // llvm::LLVMContext_DiagnosticHandlerTy
268
271
] . into_iter ( ) {
269
272
builder = builder
270
273
. whitelist_type ( rustified_enum)
@@ -525,10 +528,23 @@ fn main() {
525
528
builder = builder. clang_arg ( flag) ;
526
529
}
527
530
531
+ builder = builder. clang_arg (
532
+ "-I/home/tduberstein/local/clang/clang+llvm-5.0.0-linux-x86_64-sles11.3/lib/clang/5.0.0/include" ,
533
+ ) ;
534
+ let libclang_path_var = "LIBCLANG_PATH" ;
535
+ let var = env:: var ( libclang_path_var) ;
536
+ env:: set_var ( libclang_path_var, "/home/tduberstein/local/clang/clang+llvm-5.0.0-linux-x86_64-sles11.3/lib" ) ;
528
537
builder. generate ( )
529
538
. expect ( "Failed to generate bindings" )
530
539
. write_to_file ( out_path. join ( "bindings.rs" ) )
531
540
. expect ( "Failed to write bindings" ) ;
541
+ match var {
542
+ Ok ( var) => env:: set_var ( libclang_path_var, var) ,
543
+ Err ( e) => match e {
544
+ env:: VarError :: NotPresent => ( ) ,
545
+ env:: VarError :: NotUnicode ( var) => env:: set_var ( libclang_path_var, var) ,
546
+ } ,
547
+ }
532
548
533
549
for component in & components {
534
550
let mut flag = String :: from ( "-DLLVM_COMPONENT_" ) ;
0 commit comments