about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristoph Schulz <schulzcbs@gmail.com>2016-12-22 14:35:11 +0100
committerChristoph Schulz <schulzcbs@gmail.com>2016-12-22 17:17:06 +0100
commita397add8a7d565a4d2a71a96dd21c543959abde0 (patch)
tree1e3eeb9f63ddc3c67c6b5dfb9c8b150d840a9edb
parentc217ab6c8dc1a305304b00a414be5f39ea6a2c81 (diff)
downloadrust-a397add8a7d565a4d2a71a96dd21c543959abde0.tar.gz
rust-a397add8a7d565a4d2a71a96dd21c543959abde0.zip
Partial fix for #38489.
-rw-r--r--src/librustc_back/target/asmjs_unknown_emscripten.rs5
-rw-r--r--src/librustc_back/target/emscripten_base.rs19
-rw-r--r--src/librustc_back/target/mod.rs1
-rw-r--r--src/librustc_back/target/wasm32_unknown_emscripten.rs5
4 files changed, 26 insertions, 4 deletions
diff --git a/src/librustc_back/target/asmjs_unknown_emscripten.rs b/src/librustc_back/target/asmjs_unknown_emscripten.rs
index d86a9b09327..942e6238573 100644
--- a/src/librustc_back/target/asmjs_unknown_emscripten.rs
+++ b/src/librustc_back/target/asmjs_unknown_emscripten.rs
@@ -9,11 +9,12 @@
 // except according to those terms.
 
 use super::{Target, TargetOptions};
+use super::emscripten_base::{cmd};
 
 pub fn target() -> Result<Target, String> {
     let opts = TargetOptions {
-        linker: "emcc".to_string(),
-        ar: "emar".to_string(),
+        linker: cmd("emcc"),
+        ar: cmd("emar"),
 
         dynamic_linking: false,
         executables: true,
diff --git a/src/librustc_back/target/emscripten_base.rs b/src/librustc_back/target/emscripten_base.rs
new file mode 100644
index 00000000000..0c800271d04
--- /dev/null
+++ b/src/librustc_back/target/emscripten_base.rs
@@ -0,0 +1,19 @@
+// Copyright 2014-2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[cfg(not(windows))]
+pub fn cmd(name: &str) -> String {
+    name.to_string()
+}
+
+#[cfg(windows)]
+pub fn cmd(name: &str) -> String {
+    [name, ".bat"].concat()
+}
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
index 13333be66f5..f7ccd065601 100644
--- a/src/librustc_back/target/mod.rs
+++ b/src/librustc_back/target/mod.rs
@@ -58,6 +58,7 @@ mod apple_ios_base;
 mod arm_base;
 mod bitrig_base;
 mod dragonfly_base;
+mod emscripten_base;
 mod freebsd_base;
 mod haiku_base;
 mod linux_base;
diff --git a/src/librustc_back/target/wasm32_unknown_emscripten.rs b/src/librustc_back/target/wasm32_unknown_emscripten.rs
index 77ab4fcae70..9cfcd5d35b1 100644
--- a/src/librustc_back/target/wasm32_unknown_emscripten.rs
+++ b/src/librustc_back/target/wasm32_unknown_emscripten.rs
@@ -9,11 +9,12 @@
 // except according to those terms.
 
 use super::{Target, TargetOptions};
+use super::emscripten_base::{cmd};
 
 pub fn target() -> Result<Target, String> {
     let opts = TargetOptions {
-        linker: "emcc".to_string(),
-        ar: "emar".to_string(),
+        linker: cmd("emcc"),
+        ar: cmd("emar"),
 
         dynamic_linking: false,
         executables: true,