Fix ninja compatibility

This commit is contained in:
Damien Elmes 2023-08-25 02:35:48 +10:00
parent b55cf11e0e
commit dcf91fcc50

View file

@ -23,6 +23,7 @@ pub struct Build {
pub pools: Vec<(&'static str, usize)>, pub pools: Vec<(&'static str, usize)>,
pub trailing_text: String, pub trailing_text: String,
pub host_platform: Platform, pub host_platform: Platform,
pub have_n2: bool,
pub(crate) output_text: String, pub(crate) output_text: String,
action_names: HashSet<&'static str>, action_names: HashSet<&'static str>,
@ -48,6 +49,7 @@ impl Build {
output_text: Default::default(), output_text: Default::default(),
action_names: Default::default(), action_names: Default::default(),
groups: Default::default(), groups: Default::default(),
have_n2: which::which("n2").is_ok(),
}; };
build.add_action("build:configure", ConfigureBuild {})?; build.add_action("build:configure", ConfigureBuild {})?;
@ -101,8 +103,13 @@ impl Build {
command.replace("&&", "\"&&\"") command.replace("&&", "\"&&\"")
}; };
let mut statement = let mut statement = BuildStatement::from_build_action(
BuildStatement::from_build_action(group, action, &self.groups, self.build_profile); group,
action,
&self.groups,
self.build_profile,
self.have_n2,
);
if first_invocation { if first_invocation {
let command = statement.prepare_command(command)?; let command = statement.prepare_command(command)?;
@ -228,6 +235,7 @@ impl BuildStatement<'_> {
mut action: impl BuildAction, mut action: impl BuildAction,
existing_outputs: &'a HashMap<String, Vec<String>>, existing_outputs: &'a HashMap<String, Vec<String>>,
build_profile: BuildProfile, build_profile: BuildProfile,
have_n2: bool,
) -> BuildStatement<'a> { ) -> BuildStatement<'a> {
let mut stmt = BuildStatement { let mut stmt = BuildStatement {
existing_outputs, existing_outputs,
@ -262,6 +270,7 @@ impl BuildStatement<'_> {
if let Some(pool) = action.concurrency_pool() { if let Some(pool) = action.concurrency_pool() {
stmt.rule_variables.push(("pool".into(), pool.into())); stmt.rule_variables.push(("pool".into(), pool.into()));
} }
if have_n2 {
stmt.rule_variables.push(( stmt.rule_variables.push((
"hide_success".into(), "hide_success".into(),
(action.hide_success() as u8).to_string(), (action.hide_success() as u8).to_string(),
@ -270,6 +279,7 @@ impl BuildStatement<'_> {
"hide_last_line".into(), "hide_last_line".into(),
(action.hide_last_line() as u8).to_string(), (action.hide_last_line() as u8).to_string(),
)); ));
}
stmt stmt
} }