mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			817 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			817 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
use std::env;
 | 
						|
use std::process::Command;
 | 
						|
use std::str;
 | 
						|
 | 
						|
fn main() {
 | 
						|
    println!("cargo:rerun-if-changed=build.rs");
 | 
						|
 | 
						|
    let version = match rustc_version() {
 | 
						|
        Some(version) => version,
 | 
						|
        None => return,
 | 
						|
    };
 | 
						|
 | 
						|
    if version.minor < 54 {
 | 
						|
        // https://github.com/rust-lang/rust/pull/84717
 | 
						|
        println!("cargo:rustc-cfg=no_literal_fromstr");
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
struct RustcVersion {
 | 
						|
    minor: u32,
 | 
						|
}
 | 
						|
 | 
						|
fn rustc_version() -> Option<RustcVersion> {
 | 
						|
    let rustc = env::var_os("RUSTC")?;
 | 
						|
    let output = Command::new(rustc).arg("--version").output().ok()?;
 | 
						|
    let version = str::from_utf8(&output.stdout).ok()?;
 | 
						|
    let mut pieces = version.split('.');
 | 
						|
    if pieces.next() != Some("rustc 1") {
 | 
						|
        return None;
 | 
						|
    }
 | 
						|
    let minor = pieces.next()?.parse().ok()?;
 | 
						|
    Some(RustcVersion { minor })
 | 
						|
}
 |