From 62cd02d7fc9b0f830536801cadf4484488bd802d Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Wed, 5 Sep 2018 11:43:48 -0400 Subject: [PATCH] propagate build.python into cmake If a suitable value of Python is not on PATH, one can still invoke x.py manually, which propagates BOOTSTRAP_PYTHON into the bootstrap environment. But building LLVM will abort with error messages about not being able to find Python, and instructions to set PYTHON_EXECUTABLE, because nothing is done with BOOTSTRAP_PYTHON when invoking cmake. Setting build.python in config.toml had no effect in this scenario, either To fix this, let's provide PYTHON_EXECUTABLE when invoking cmake; for the "normal" case of Python in PATH, this doesn't alter any behavior. For more unusual cases, however, this ensures cmake finds Python properly. (This change also ensures there are no differences between what bootstrap is using, and what cmake uses, which may be useful for consistency's sake.) --- src/bootstrap/native.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs index 347c2472c6b..caf38d766f5 100644 --- a/src/bootstrap/native.rs +++ b/src/bootstrap/native.rs @@ -239,6 +239,10 @@ impl Step for Llvm { cfg.define("LLVM_NATIVE_BUILD", builder.llvm_out(builder.config.build).join("build")); } + if let Some(ref python) = builder.config.python { + cfg.define("PYTHON_EXECUTABLE", python); + } + configure_cmake(builder, target, &mut cfg, false); // FIXME: we don't actually need to build all LLVM tools and all LLVM