diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-05-27 06:05:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-27 06:05:14 -0400 |
commit | 0957328ee2a411034e3dc9fbd792528d779df86e (patch) | |
tree | dae226fa06a75588f57ee805b5cbf221f73a2cd1 | |
parent | 5b79711ece0846f0a12c9d0c1f496f1d94ab28c1 (diff) | |
parent | 0d831117ec7f1b6e16ca9980c3a9fd0523e1a775 (diff) | |
download | servo-0957328ee2a411034e3dc9fbd792528d779df86e.tar.gz servo-0957328ee2a411034e3dc9fbd792528d779df86e.zip |
Auto merge of #23453 - jdm:no-vcvars, r=paulrouget
Remove restrictions on cross-compiling on Windows.
This allows us to successfully build Servo when targeting UWP.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23453)
<!-- Reviewable:end -->
-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 |