Rollup merge of #128283 - lolbinarycat:bootstrap-custom-target, r=albertlarsan68
bootstrap: fix bug preventing the use of custom targets the bug was caused by two factors: 1. only checking the RUST_TARGET_PATH form, not the full filepath form 2. indirectly trying to use the Debug presentation to get the file path
This commit is contained in:
commit
0afbe482f0
@ -512,6 +512,11 @@ pub fn is_msvc(&self) -> bool {
|
|||||||
pub fn is_windows(&self) -> bool {
|
pub fn is_windows(&self) -> bool {
|
||||||
self.contains("windows")
|
self.contains("windows")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Path to the file defining the custom target, if any.
|
||||||
|
pub fn filepath(&self) -> Option<&Path> {
|
||||||
|
self.file.as_ref().map(Path::new)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for TargetSelection {
|
impl fmt::Display for TargetSelection {
|
||||||
|
@ -260,7 +260,9 @@ pub fn check(build: &mut Build) {
|
|||||||
|
|
||||||
if !has_target {
|
if !has_target {
|
||||||
// This might also be a custom target, so check the target file that could have been specified by the user.
|
// This might also be a custom target, so check the target file that could have been specified by the user.
|
||||||
if let Some(custom_target_path) = env::var_os("RUST_TARGET_PATH") {
|
if target.filepath().is_some_and(|p| p.exists()) {
|
||||||
|
has_target = true;
|
||||||
|
} else if let Some(custom_target_path) = env::var_os("RUST_TARGET_PATH") {
|
||||||
let mut target_filename = OsString::from(&target_str);
|
let mut target_filename = OsString::from(&target_str);
|
||||||
// Target filename ends with `.json`.
|
// Target filename ends with `.json`.
|
||||||
target_filename.push(".json");
|
target_filename.push(".json");
|
||||||
@ -275,8 +277,12 @@ pub fn check(build: &mut Build) {
|
|||||||
|
|
||||||
if !has_target {
|
if !has_target {
|
||||||
panic!(
|
panic!(
|
||||||
"No such target exists in the target list,
|
"No such target exists in the target list,\n\
|
||||||
specify a correct location of the JSON specification file for custom targets!"
|
make sure to correctly specify the location \
|
||||||
|
of the JSON specification file \
|
||||||
|
for custom targets!\n\
|
||||||
|
Use BOOTSTRAP_SKIP_TARGET_SANITY=1 to \
|
||||||
|
bypass this check."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user