mirror of
https://github.com/rust-lang/rust.git
synced 2025-09-26 20:21:59 +00:00
Allow windows resource compiler to be overridden
It is now required to provide a resource compiler on windows when compiling rust. This allows toolchain builders to explicitly provide a path to an alternative, such as llvm-rc, instead of the one that's provided by the Windows SDK.
This commit is contained in:
parent
32e3d9f59b
commit
7f55f5761c
@ -325,6 +325,9 @@
|
||||
# Defaults to the Python interpreter used to execute x.py.
|
||||
#build.python = "python"
|
||||
|
||||
# The path to (or name of) the resource compiler executable to use on Windows.
|
||||
#build.windows-rc = "rc.exe"
|
||||
|
||||
# The path to the REUSE executable to use. Note that REUSE is not required in
|
||||
# most cases, as our tooling relies on a cached (and shrunk) copy of the
|
||||
# REUSE output present in the git repository and in our source tarballs.
|
||||
|
@ -35,8 +35,11 @@ pub fn compile_windows_resource_file(
|
||||
resources_dir.push("resources");
|
||||
fs::create_dir_all(&resources_dir).unwrap();
|
||||
|
||||
let resource_compiler =
|
||||
find_resource_compiler(&env::var("CARGO_CFG_TARGET_ARCH").unwrap()).expect("found rc.exe");
|
||||
let resource_compiler = if let Ok(path) = env::var("RUSTC_WINDOWS_RC") {
|
||||
path.into()
|
||||
} else {
|
||||
find_resource_compiler(&env::var("CARGO_CFG_TARGET_ARCH").unwrap()).expect("found rc.exe")
|
||||
};
|
||||
|
||||
let rc_path = resources_dir.join(file_stem.with_extension("rc"));
|
||||
|
||||
|
@ -1227,6 +1227,11 @@ impl Builder<'_> {
|
||||
rustflags.arg("-Zehcont-guard");
|
||||
}
|
||||
|
||||
// Optionally override the rc.exe when compiling rustc on Windows.
|
||||
if let Some(windows_rc) = &self.config.windows_rc {
|
||||
cargo.env("RUSTC_WINDOWS_RC", windows_rc);
|
||||
}
|
||||
|
||||
// For `cargo doc` invocations, make rustdoc print the Rust version into the docs
|
||||
// This replaces spaces with tabs because RUSTDOCFLAGS does not
|
||||
// support arguments with regular spaces. Hopefully someday Cargo will
|
||||
|
@ -273,6 +273,7 @@ pub struct Config {
|
||||
pub gdb: Option<PathBuf>,
|
||||
pub lldb: Option<PathBuf>,
|
||||
pub python: Option<PathBuf>,
|
||||
pub windows_rc: Option<PathBuf>,
|
||||
pub reuse: Option<PathBuf>,
|
||||
pub cargo_native_static: bool,
|
||||
pub configure_args: Vec<String>,
|
||||
@ -450,6 +451,7 @@ impl Config {
|
||||
nodejs: build_nodejs,
|
||||
npm: build_npm,
|
||||
python: build_python,
|
||||
windows_rc: build_windows_rc,
|
||||
reuse: build_reuse,
|
||||
locked_deps: build_locked_deps,
|
||||
vendor: build_vendor,
|
||||
@ -1342,6 +1344,7 @@ impl Config {
|
||||
.unwrap_or(rust_debug == Some(true)),
|
||||
vendor,
|
||||
verbose_tests,
|
||||
windows_rc: build_windows_rc.map(PathBuf::from),
|
||||
// tidy-alphabetical-end
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ define_config! {
|
||||
nodejs: Option<String> = "nodejs",
|
||||
npm: Option<String> = "npm",
|
||||
python: Option<String> = "python",
|
||||
windows_rc: Option<String> = "windows-rc",
|
||||
reuse: Option<String> = "reuse",
|
||||
locked_deps: Option<bool> = "locked-deps",
|
||||
vendor: Option<bool> = "vendor",
|
||||
|
@ -551,4 +551,9 @@ pub const CONFIG_CHANGE_HISTORY: &[ChangeInfo] = &[
|
||||
severity: ChangeSeverity::Info,
|
||||
summary: "There is now a bootstrap option called `rust.parallel-frontend-threads`, which can be used to set the number of threads for the compiler frontend used during compilation of Rust code.",
|
||||
},
|
||||
ChangeInfo {
|
||||
change_id: 146663,
|
||||
severity: ChangeSeverity::Info,
|
||||
summary: "New option `build.windows-rc` that will override which resource compiler on Windows will be used to compile Rust.",
|
||||
},
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user