diff options
author | Josh Matthews <josh@joshmatthews.net> | 2019-05-24 16:03:47 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2019-05-24 22:32:34 -0400 |
commit | 0d831117ec7f1b6e16ca9980c3a9fd0523e1a775 (patch) | |
tree | 2b3b2a2b9d12ec5b2ed8f578a1caf89be5b777bd /components/script | |
parent | e0c95ed8558433d792569a0d3ce9a1cfa84eb6e3 (diff) | |
download | servo-0d831117ec7f1b6e16ca9980c3a9fd0523e1a775.tar.gz servo-0d831117ec7f1b6e16ca9980c3a9fd0523e1a775.zip |
Remove restrictions on cross-compiling on Windows.
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/CMakeLists.txt | 2 | ||||
-rw-r--r-- | components/script/build.rs | 48 | ||||
-rw-r--r-- | components/script/vcvars.bat | 2 |
3 files changed, 1 insertions, 51 deletions
diff --git a/components/script/CMakeLists.txt b/components/script/CMakeLists.txt index 0d892801469..5cf4071a144 100644 --- a/components/script/CMakeLists.txt +++ b/components/script/CMakeLists.txt @@ -1,4 +1,4 @@ -project(script) +project(script LANGUAGES) cmake_minimum_required(VERSION 2.6) set(DUMMY ${CMAKE_BUILD_TYPE}) diff --git a/components/script/build.rs b/components/script/build.rs index cefabaac4f8..794e2fe3283 100644 --- a/components/script/build.rs +++ b/components/script/build.rs @@ -9,47 +9,12 @@ use std::fmt; use std::fs::File; use std::io::Write; use std::path::PathBuf; -use std::process::Command; use std::str; use std::time::Instant; fn main() { let start = Instant::now(); - let target = env::var("TARGET").unwrap(); - let host = env::var("HOST").unwrap(); - if target.contains("windows") && host != target { - assert_eq!( - host, "x86_64-pc-windows-msvc", - "Only cross-compiling from x64 is supported" - ); - assert_eq!( - target, "i686-pc-windows-msvc", - "Only cross-compiling to x86 is supported" - ); - assert!(env::var("VSINSTALLDIR").is_err()); - // When cross-compiling on Windows, we need to ensure that the PATH is - // set up appropriately for the target before invoking make. - if env::var("VCVARSALL_PATH").is_err() { - panic!( - "Need to provide VCVARSALL_PATH value with path to \ - vcvarsall.bat from Visual Studio installation" - ); - } - - let vcvars = Command::new("vcvars.bat").output().unwrap(); - assert!(vcvars.status.success()); - let output = str::from_utf8(&vcvars.stdout).unwrap(); - for line in output.lines() { - let mut parts = line.splitn(2, '='); - if let Some(name) = parts.next() { - if let Some(value) = parts.next() { - env::set_var(name, value); - } - } - } - } - // This must use the Ninja generator -- it's the only one that // parallelizes cmake's output properly. (Cmake generates // separate makefiles, each of which try to build @@ -61,19 +26,6 @@ fn main() { // We must use Ninja on Windows for this -- msbuild is painfully slow, // and ninja is easier to install than make. build.generator("Ninja"); - // We have to explicitly specify the full path to link.exe, - // for reasons that I don't understand. If we just give - // link.exe, it tries to use script-*/out/link.exe, which of - // course does not exist. - let link = std::process::Command::new("where") - .arg("link.exe") - .output() - .unwrap(); - let link_path: Vec<&str> = std::str::from_utf8(&link.stdout) - .unwrap() - .split("\r\n") - .collect(); - build.define("CMAKE_LINKER", link_path[0]); } build.build(); diff --git a/components/script/vcvars.bat b/components/script/vcvars.bat deleted file mode 100644 index 205599fd33c..00000000000 --- a/components/script/vcvars.bat +++ /dev/null @@ -1,2 +0,0 @@ -call "%VCVARSALL_PATH%\vcvarsall.bat" x64_x86 -set |