diff options
Diffstat (limited to 'build.rs')
-rw-r--r-- | build.rs | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/build.rs b/build.rs deleted file mode 100644 index 002135b..0000000 --- a/build.rs +++ /dev/null @@ -1,87 +0,0 @@ -use std::env; -use std::ffi::OsString; -use std::io::{self, Write}; -use std::process::Command; - -fn main() { - let version = match Version::read() { - Ok(version) => version, - Err(err) => { - writeln!( - &mut io::stderr(), - "failed to parse `rustc --version`: {}", - err - ).unwrap(); - return; - } - }; - enable_i128(version); -} - -fn enable_i128(version: Version) { - if version < (Version { major: 1, minor: 26, patch: 0 }) { - return; - } - - println!("cargo:rustc-cfg=byteorder_i128"); -} - -#[derive(Clone, Copy, Debug, Eq, PartialEq, PartialOrd, Ord)] -struct Version { - major: u32, - minor: u32, - patch: u32, -} - -impl Version { - fn read() -> Result<Version, String> { - let rustc = env::var_os("RUSTC").unwrap_or(OsString::from("rustc")); - let output = Command::new(&rustc) - .arg("--version") - .output() - .unwrap() - .stdout; - Version::parse(&String::from_utf8(output).unwrap()) - } - - fn parse(mut s: &str) -> Result<Version, String> { - if !s.starts_with("rustc ") { - return Err(format!("unrecognized version string: {}", s)); - } - s = &s["rustc ".len()..]; - - let parts: Vec<&str> = s.split(".").collect(); - if parts.len() < 3 { - return Err(format!("not enough version parts: {:?}", parts)); - } - - let mut num = String::new(); - for c in parts[0].chars() { - if !c.is_digit(10) { - break; - } - num.push(c); - } - let major = try!(num.parse::<u32>().map_err(|e| e.to_string())); - - num.clear(); - for c in parts[1].chars() { - if !c.is_digit(10) { - break; - } - num.push(c); - } - let minor = try!(num.parse::<u32>().map_err(|e| e.to_string())); - - num.clear(); - for c in parts[2].chars() { - if !c.is_digit(10) { - break; - } - num.push(c); - } - let patch = try!(num.parse::<u32>().map_err(|e| e.to_string())); - - Ok(Version { major: major, minor: minor, patch: patch }) - } -} |