@@ -287,6 +287,9 @@ fn copy_pregenerated_bindings() {
287
287
288
288
fs:: copy ( crate_path. join ( "sdl_ttf_bindings.rs" ) , out_path. join ( "ttf_bindings.rs" ) )
289
289
. expect ( "Couldn't find pregenerated SDL_ttf bindings!" ) ;
290
+
291
+ fs:: copy ( crate_path. join ( "sdl_mixer_bindings.rs" ) , out_path. join ( "mixer_bindings.rs" ) )
292
+ . expect ( "Couldn't find pregenerated SDL_mixer bindings!" ) ;
290
293
}
291
294
292
295
#[ cfg( feature = "bindgen" ) ]
@@ -297,6 +300,7 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
297
300
let mut bindings = bindgen:: Builder :: default ( ) ;
298
301
let mut image_bindings = bindgen:: Builder :: default ( ) ;
299
302
let mut ttf_bindings = bindgen:: Builder :: default ( ) ;
303
+ let mut mixer_bindings = bindgen:: Builder :: default ( ) ;
300
304
301
305
// Set correct target triple for bindgen when cross-compiling
302
306
if target != host {
@@ -308,6 +312,9 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
308
312
309
313
ttf_bindings = ttf_bindings. clang_arg ( "-target" ) ;
310
314
ttf_bindings = ttf_bindings. clang_arg ( target. clone ( ) ) ;
315
+
316
+ mixer_bindings = mixer_bindings. clang_arg ( "-target" ) ;
317
+ mixer_bindings = mixer_bindings. clang_arg ( target. clone ( ) ) ;
311
318
}
312
319
313
320
if headers_paths. len ( ) == 0 {
@@ -318,12 +325,14 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
318
325
bindings = bindings. clang_arg ( format ! ( "-I{}" , include_path. display( ) ) ) ;
319
326
image_bindings = image_bindings. clang_arg ( format ! ( "-I{}" , include_path. display( ) ) ) ;
320
327
ttf_bindings = ttf_bindings. clang_arg ( format ! ( "-I{}" , include_path. display( ) ) ) ;
328
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-I{}" , include_path. display( ) ) ) ;
321
329
} else {
322
330
// if paths are included, use them for bindgen. Bindgen should use the first one.
323
331
for headers_path in headers_paths {
324
332
bindings = bindings. clang_arg ( format ! ( "-I{}" , headers_path. as_ref( ) ) ) ;
325
333
image_bindings = image_bindings. clang_arg ( format ! ( "-I{}" , headers_path. as_ref( ) ) ) ;
326
334
ttf_bindings = ttf_bindings. clang_arg ( format ! ( "-I{}" , headers_path. as_ref( ) ) ) ;
335
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-I{}" , headers_path. as_ref( ) ) ) ;
327
336
}
328
337
}
329
338
@@ -345,6 +354,12 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
345
354
ttf_bindings = ttf_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt" ) ) ;
346
355
ttf_bindings = ttf_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include" ) ) ;
347
356
ttf_bindings = ttf_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Windows Kits/8.1/Include/um" ) ) ;
357
+
358
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Windows Kits/8.1/Include/shared" ) ) ;
359
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-IC:/Program Files/LLVM/lib/clang/5.0.0/include" ) ) ;
360
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt" ) ) ;
361
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include" ) ) ;
362
+ mixer_bindings = mixer_bindings. clang_arg ( format ! ( "-IC:/Program Files (x86)/Windows Kits/8.1/Include/um" ) ) ;
348
363
} ;
349
364
350
365
// SDL2 hasn't a default configuration for Linux
@@ -355,6 +370,8 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
355
370
image_bindings = image_bindings. clang_arg ( "-DSDL_VIDEO_DRIVER_WAYLAND" ) ;
356
371
ttf_bindings = ttf_bindings. clang_arg ( "-DSDL_VIDEO_DRIVER_X11" ) ;
357
372
ttf_bindings = ttf_bindings. clang_arg ( "-DSDL_VIDEO_DRIVER_WAYLAND" ) ;
373
+ mixer_bindings = mixer_bindings. clang_arg ( "-DSDL_VIDEO_DRIVER_X11" ) ;
374
+ mixer_bindings = mixer_bindings. clang_arg ( "-DSDL_VIDEO_DRIVER_WAYLAND" ) ;
358
375
}
359
376
360
377
let bindings = bindings
@@ -403,6 +420,24 @@ fn generate_bindings<S: AsRef<str> + ::std::fmt::Debug>(target: &str, host: &str
403
420
. write_to_file ( out_path. join ( "ttf_bindings.rs" ) )
404
421
. expect ( "Couldn't write ttf_bindings!" ) ;
405
422
423
+ let mixer_bindings = mixer_bindings
424
+ . header ( "wrapper_mixer.h" )
425
+ . whitelist_type ( "MIX.*" )
426
+ . whitelist_type ( "Mix.*" )
427
+ . whitelist_type ( "MUS.*" )
428
+ . whitelist_function ( "Mix.*" )
429
+ . whitelist_var ( "MIX.*" )
430
+ . whitelist_var ( "MUS.*" )
431
+ . blacklist_type ( "SDL_.*" )
432
+ . blacklist_type ( "_IO.*|FILE" )
433
+ . generate ( )
434
+ . expect ( "Unable to generate mixer_bindings!" ) ;
435
+
436
+ let out_path = PathBuf :: from ( env:: var ( "OUT_DIR" ) . unwrap ( ) ) ;
437
+
438
+ mixer_bindings
439
+ . write_to_file ( out_path. join ( "mixer_bindings.rs" ) )
440
+ . expect ( "Couldn't write mixer_bindings!" ) ;
406
441
}
407
442
408
443
fn get_os_from_triple ( triple : & str ) -> Option < & str >
0 commit comments