Parallelize build-time bindgen

This commit is contained in:
Xidorn Quan 2016-12-15 18:03:44 +11:00
parent fde9ac1768
commit cbfe1832c5

View file

@ -617,8 +617,14 @@ mod bindings {
pub fn generate() { pub fn generate() {
use self::common::*; use self::common::*;
use std::fs; use std::fs;
use std::thread;
fs::create_dir_all(&*OUTDIR_PATH).unwrap(); fs::create_dir_all(&*OUTDIR_PATH).unwrap();
bindings::generate_structs(BuildType::Debug); let threads = vec![
bindings::generate_structs(BuildType::Release); thread::spawn(|| bindings::generate_structs(BuildType::Debug)),
bindings::generate_bindings(); thread::spawn(|| bindings::generate_structs(BuildType::Release)),
thread::spawn(|| bindings::generate_bindings()),
];
for t in threads.into_iter() {
t.join().unwrap();
}
} }