about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2017-05-02 10:58:47 -0700
committerJosh Stone <jistone@redhat.com>2017-05-02 10:58:47 -0700
commit1ed07ba4f12063c86ce25d3b27326d982211a64c (patch)
treed9d4b6bba961d9c3fc9bd810b81f3ccda2c1d041 /src/bootstrap
parent96e2c34286099eea4f51daaadbb82a8fbe99e0f6 (diff)
rustbuild: Sanity-check cmake for sanitizers too
It's possible to build the sanitizers when using an external LLVM, but
we still need cmake for this.  Extend the sanity check to look for cmake
whenever sanitizers are enabled too.
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/sanity.rs27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
index d1b235f4691..df6378a970b 100644
--- a/src/bootstrap/sanity.rs
+++ b/src/bootstrap/sanity.rs
@@ -69,22 +69,21 @@ pub fn check(build: &mut Build) {
         need_cmd("git".as_ref());
     }
 
-    // We need cmake, but only if we're actually building LLVM
-    for host in build.config.host.iter() {
-        if let Some(config) = build.config.target_config.get(host) {
-            if config.llvm_config.is_some() {
-                continue
-            }
-        }
+    // We need cmake, but only if we're actually building LLVM or sanitizers.
+    let building_llvm = build.config.host.iter()
+        .filter_map(|host| build.config.target_config.get(host))
+        .any(|config| config.llvm_config.is_none());
+    if building_llvm || build.config.sanitizers {
         need_cmd("cmake".as_ref());
-        if build.config.ninja {
-            // Some Linux distros rename `ninja` to `ninja-build`.
-            // CMake can work with either binary name.
-            if have_cmd("ninja-build".as_ref()).is_none() {
-                need_cmd("ninja".as_ref());
-            }
+    }
+
+    // Ninja is currently only used for LLVM itself.
+    if building_llvm && build.config.ninja {
+        // Some Linux distros rename `ninja` to `ninja-build`.
+        // CMake can work with either binary name.
+        if have_cmd("ninja-build".as_ref()).is_none() {
+            need_cmd("ninja".as_ref());
         }
-        break
     }
 
     if build.config.python.is_none() {