about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_back/target/asmjs_unknown_emscripten.rs5
-rw-r--r--src/librustc_back/target/emscripten_base.rs17
-rw-r--r--src/librustc_back/target/mod.rs1
-rw-r--r--src/librustc_back/target/wasm32_unknown_emscripten.rs5
4 files changed, 24 insertions, 4 deletions
diff --git a/src/librustc_back/target/asmjs_unknown_emscripten.rs b/src/librustc_back/target/asmjs_unknown_emscripten.rs
index 98a9e343d00..2dbaeaf26e9 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..bacada3f5ab
--- /dev/null
+++ b/src/librustc_back/target/emscripten_base.rs
@@ -0,0 +1,17 @@
+// 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.
+
+pub fn cmd(name: &str) -> String {
+    if cfg!(windows) {
+        format!("{}.bat", name)
+    } else {
+        name.to_string()
+    }
+}
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
index 6a409edf0fe..9616cc77e35 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 fec269074da..a06980767fd 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,