From 72d49c543059b23f67a450937b22047c3ba9d8cf Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sat, 19 Mar 2016 00:59:29 -0700 Subject: [PATCH] Try to set Platform for MSBuild --- src/windows_registry.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/windows_registry.rs b/src/windows_registry.rs index 7e7c717..1d65dd9 100644 --- a/src/windows_registry.rs +++ b/src/windows_registry.rs @@ -52,7 +52,7 @@ pub fn find_tool(target: &str, tool: &str) -> Option { if !target.contains("msvc") { return None } if tool.contains("msbuild") { - return find_msbuild() + return find_msbuild(target) } // When finding binaries the 32-bit version is at the top level but the @@ -362,7 +362,7 @@ pub fn find_tool(target: &str, tool: &str) -> Option { } // see http://stackoverflow.com/questions/328017/path-to-msbuild - fn find_msbuild() -> Option { + fn find_msbuild(target: &str) -> Option { let key = r"SOFTWARE\Microsoft\MSBuild\ToolsVersions"; LOCAL_MACHINE.open(key.as_ref()).ok().and_then(|key| { max_version(&key).and_then(|(_vers, key)| { @@ -371,7 +371,11 @@ pub fn find_tool(target: &str, tool: &str) -> Option { }).map(|path| { let mut path = PathBuf::from(path); path.push("MSBuild.exe"); - Tool::new(path) + let mut tool = Tool::new(path); + if path.contains("x86_64") { + tool.env.push(("Platform".into(), "X64".into())); + } + tool }) } }