Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions bootstrap.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
7 changes: 5 additions & 2 deletions compiler/rustc_windows_rc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));

Expand Down
5 changes: 5 additions & 0 deletions src/bootstrap/src/core/builder/cargo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions src/bootstrap/src/core/config/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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
}
}
Expand Down
1 change: 1 addition & 0 deletions src/bootstrap/src/core/config/toml/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 5 additions & 0 deletions src/bootstrap/src/utils/change_tracker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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