diff options
-rw-r--r-- | ports/servoshell/Cargo.toml | 4 | ||||
-rw-r--r-- | ports/servoshell/build.rs | 30 |
2 files changed, 19 insertions, 15 deletions
diff --git a/ports/servoshell/Cargo.toml b/ports/servoshell/Cargo.toml index f465ca186b0..fb28678d80d 100644 --- a/ports/servoshell/Cargo.toml +++ b/ports/servoshell/Cargo.toml @@ -20,13 +20,11 @@ bench = false [build-dependencies] vergen = { version = "8.3.1", features = ["git", "git2"] } +cc = "1.0" [target.'cfg(windows)'.build-dependencies] winres = "0.1" -[target.'cfg(target_os = "macos")'.build-dependencies] -cc = "1.0" - [package.metadata.winres] FileDescription = "Servo" LegalCopyright = "© The Servo Project Developers" diff --git a/ports/servoshell/build.rs b/ports/servoshell/build.rs index 961e30ba36e..ae6a1cacaa8 100644 --- a/ports/servoshell/build.rs +++ b/ports/servoshell/build.rs @@ -21,15 +21,21 @@ fn main() -> Result<(), Box<dyn Error>> { println!("cargo:rustc-cfg=servo_do_not_use_in_production"); } - #[cfg(windows)] - { - let mut res = winres::WindowsResource::new(); - res.set_icon("../../resources/servo.ico"); - res.set_manifest_file("platform/windows/servo.exe.manifest"); - res.compile().unwrap(); - } - #[cfg(target_os = "macos")] - { + // Note: We can't use `#[cfg(windows)]`, since that would check the host platform + // and not the target platform + let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); + + if target_os == "windows" { + #[cfg(windows)] + { + let mut res = winres::WindowsResource::new(); + res.set_icon("../../resources/servo.ico"); + res.set_manifest_file("platform/windows/servo.exe.manifest"); + res.compile().unwrap(); + } + #[cfg(not(windows))] + panic!("Cross-compiling to windows is currently not supported"); + } else if target_os == "macos" { cc::Build::new() .file("platform/macos/count_threads.c") .compile("count_threads"); @@ -50,8 +56,8 @@ fn main() -> Result<(), Box<dyn Error>> { // On MacOS, all dylib dependencies are shipped along with the binary // in the "/lib" directory. Setting the rpath here, allows the dynamic // linker to locate them. See `man dyld` for more info. - #[cfg(target_os = "macos")] - println!("cargo:rustc-link-arg=-Wl,-rpath,@executable_path/lib/"); - + if target_os == "macos" { + println!("cargo:rustc-link-arg=-Wl,-rpath,@executable_path/lib/"); + } Ok(()) } |