1-
21extern crate cbindgen;
32extern crate regex_lite;
43extern crate imageflow_helpers;
@@ -10,6 +9,7 @@ use std::path;
109use cbindgen:: Builder ;
1110use std:: io:: Cursor ;
1211use std:: env;
12+ use rayon:: prelude:: * ;
1313
1414
1515static OPAQUE_STRUCTS : & ' static str = r#"
@@ -310,56 +310,29 @@ fn main() {
310310 //let base = "imageflow_"; //for debugging more easily
311311 let base = "../bindings/headers/imageflow_" ;
312312
313- build ( format ! ( "{}default.h" , base) , Target :: Default ) ;
314-
315- build ( format ! ( "{}lua.h" , base) , Target :: Lua ) ;
316- build ( format ! ( "{}raw.h" , base) , Target :: Raw ) ;
317-
318- build ( format ! ( "{}short.h" , base) , Target :: SignaturesOnly ) ;
319- build ( format ! ( "{}pinvoke.h" , base) , Target :: PInvoke ) ;
320-
321- // build(format!("{}SCREAMING_SNAKE.h",base), Target::PrefixAll{
322- // prefix: "Imageflow",
323- // struct_name: Style::ScreamingSnake,
324- // enum_name: Style::ScreamingSnake,
325- // enum_member: Style::ScreamingSnake,
326- // });
327- build ( format ! ( "{}SCREAMING_ENUMS.h" , base) , Target :: PrefixAll {
328- prefix : "Imageflow" ,
329- struct_name : Style :: Snake ,
330- enum_name : Style :: ScreamingSnake ,
331- enum_member : Style :: ScreamingSnake ,
332- } ) ;
333- // build(format!("{}PascalCase.h",base), Target::PrefixAll{
334- // prefix: "",
335- // struct_name: Style::PascalCase,
336- // enum_name: Style::PascalCase,
337- // enum_member: Style::PascalCase,
338- // });
339- build ( format ! ( "{}PrefixedPascalCase.h" , base) , Target :: PrefixAll {
340- prefix : "Imageflow" ,
341- struct_name : Style :: PascalCase ,
342- enum_name : Style :: PascalCase ,
343- enum_member : Style :: PascalCase ,
313+ // Create a vector of tuples containing (filename, target)
314+ let builds = vec ! [
315+ ( format!( "{}default.h" , base) , Target :: Default ) ,
316+ ( format!( "{}lua.h" , base) , Target :: Lua ) ,
317+ ( format!( "{}raw.h" , base) , Target :: Raw ) ,
318+ ( format!( "{}short.h" , base) , Target :: SignaturesOnly ) ,
319+ ( format!( "{}pinvoke.h" , base) , Target :: PInvoke ) ,
320+ ( format!( "{}SCREAMING_ENUMS.h" , base) , Target :: PrefixAll {
321+ prefix: "Imageflow" ,
322+ struct_name: Style :: Snake ,
323+ enum_name: Style :: ScreamingSnake ,
324+ enum_member: Style :: ScreamingSnake ,
325+ } ) ,
326+ ( format!( "{}PrefixedPascalCase.h" , base) , Target :: PrefixAll {
327+ prefix: "Imageflow" ,
328+ struct_name: Style :: PascalCase ,
329+ enum_name: Style :: PascalCase ,
330+ enum_member: Style :: PascalCase ,
331+ } ) ,
332+ ] ;
333+
334+ // Use rayon to parallelize the builds
335+ builds. par_iter ( ) . for_each ( |( file, target) | {
336+ build ( file. clone ( ) , * target) ;
344337 } ) ;
345- // build(format!("{}Prefixed_Pascal_Snake.h",base), Target::PrefixAll{
346- // prefix: "Imageflow",
347- // struct_name: Style::PascalSnake,
348- // enum_name: Style::PascalSnake,
349- // enum_member: Style::PascalSnake,
350- // });
351-
352- // build(format!("{}prefixed_Camel_Snake.h",base), Target::PrefixAll{
353- // prefix: "Imageflow",
354- // struct_name: Style::CamelSnake,
355- // enum_name: Style::CamelSnake,
356- // enum_member: Style::CamelSnake,
357- // });
358- // build(format!("{}prefixedCamelCase.h",base), Target::PrefixAll{
359- // prefix: "Imageflow",
360- // struct_name: Style::CamelCase,
361- // enum_name: Style::CamelCase,
362- // enum_member: Style::CamelCase,
363- // });
364-
365338}
0 commit comments