simplify build script
This commit is contained in:
parent
deb452c651
commit
175583e335
|
@ -3,3 +3,6 @@ name = "lwkt"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
authors = ["edef <edef@edef.eu>"]
|
authors = ["edef <edef@edef.eu>"]
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
gcc = "0.3.3"
|
||||||
|
|
46
build.rs
46
build.rs
|
@ -1,47 +1,5 @@
|
||||||
#![feature(old_io, old_path)]
|
extern crate gcc;
|
||||||
use std::old_io::Command;
|
|
||||||
use std::old_io::fs::PathExtensions;
|
|
||||||
use std::old_io::fs;
|
|
||||||
use std::env;
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let out_dir = env::var("OUT_DIR").unwrap();
|
gcc::compile_library("libcontext.a", &["src/platform.c"]);
|
||||||
let mut objects = Vec::new();
|
|
||||||
|
|
||||||
let files = fs::readdir(&Path::new("src")).unwrap();
|
|
||||||
let files = files.iter().filter(|p| p.is_file());
|
|
||||||
|
|
||||||
for file in files {
|
|
||||||
if let Some(filename) = file.filename_str() {
|
|
||||||
let filepath = format!("src/{}", filename);
|
|
||||||
let outpath;
|
|
||||||
|
|
||||||
if let Some(basename) = eat_extension(filename, ".c") {
|
|
||||||
outpath = format!("{}/{}.o", out_dir, basename);
|
|
||||||
|
|
||||||
Command::new("cc").args(&[&*filepath, "-c", "-fPIC", "-o"])
|
|
||||||
.arg(outpath.clone())
|
|
||||||
.status().unwrap();
|
|
||||||
}
|
|
||||||
else { continue }
|
|
||||||
|
|
||||||
objects.push(outpath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Command::new("ar").args(&["crus", "libcontext.a"])
|
|
||||||
.args(&*objects)
|
|
||||||
.cwd(&Path::new(&out_dir))
|
|
||||||
.status().unwrap();
|
|
||||||
|
|
||||||
println!("cargo:rustc-flags=-L {} -l context:static", out_dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn eat_extension<'a>(s: &'a str, ext: &str) -> Option<&'a str> {
|
|
||||||
if s.ends_with(ext) {
|
|
||||||
Some(&s[..s.len() - ext.len()])
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue