Merge "Apply module_name_overrides and module_blocklist to genrule too." into main am: 45b2c07827
Original change: https://android-review.googlesource.com/c/platform/development/+/2862485 Change-Id: Ia9d148c46d0dac3424f82a898a26580d968f450f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -18,7 +18,7 @@ use super::{
|
|||||||
add_defaults_to_variant, default_apex_available, default_true, PackageConfig,
|
add_defaults_to_variant, default_apex_available, default_true, PackageConfig,
|
||||||
PackageVariantConfig,
|
PackageVariantConfig,
|
||||||
};
|
};
|
||||||
use crate::renamed_module;
|
use crate::RENAME_MAP;
|
||||||
use anyhow::{anyhow, bail, Context, Result};
|
use anyhow::{anyhow, bail, Context, Result};
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_json::{Map, Value};
|
use serde_json::{Map, Value};
|
||||||
@@ -294,7 +294,11 @@ impl VariantConfig {
|
|||||||
|
|
||||||
fn package_to_library_name(package_name: &str) -> String {
|
fn package_to_library_name(package_name: &str) -> String {
|
||||||
let module_name = format!("lib{}", package_name);
|
let module_name = format!("lib{}", package_name);
|
||||||
renamed_module(&module_name).to_owned()
|
if let Some(renamed) = RENAME_MAP.get(module_name.as_str()) {
|
||||||
|
renamed.to_string()
|
||||||
|
} else {
|
||||||
|
module_name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_filename_to_module_name(package_name: &str, test_filename: &str) -> String {
|
fn test_filename_to_module_name(package_name: &str, test_filename: &str) -> String {
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ use std::process::Command;
|
|||||||
// * handle warnings. put them in comments in the android.bp, some kind of report section
|
// * handle warnings. put them in comments in the android.bp, some kind of report section
|
||||||
|
|
||||||
/// Rust modules which shouldn't use the default generated names, to avoid conflicts or confusion.
|
/// Rust modules which shouldn't use the default generated names, to avoid conflicts or confusion.
|
||||||
static RENAME_MAP: Lazy<BTreeMap<&str, &str>> = Lazy::new(|| {
|
pub static RENAME_MAP: Lazy<BTreeMap<&str, &str>> = Lazy::new(|| {
|
||||||
[
|
[
|
||||||
("libash", "libash_rust"),
|
("libash", "libash_rust"),
|
||||||
("libatomic", "libatomic_rust"),
|
("libatomic", "libatomic_rust"),
|
||||||
@@ -80,11 +80,21 @@ static RENAME_MAP: Lazy<BTreeMap<&str, &str>> = Lazy::new(|| {
|
|||||||
.collect()
|
.collect()
|
||||||
});
|
});
|
||||||
|
|
||||||
fn renamed_module(name: &str) -> &str {
|
/// Given a proposed module name, returns `None` if it is blocked by the given config, or
|
||||||
if let Some(renamed) = RENAME_MAP.get(name) {
|
/// else apply any name overrides and returns the name to use.
|
||||||
renamed
|
fn override_module_name(
|
||||||
|
module_name: &str,
|
||||||
|
blocklist: &[String],
|
||||||
|
module_name_overrides: &BTreeMap<String, String>,
|
||||||
|
) -> Option<String> {
|
||||||
|
if blocklist.iter().any(|blocked_name| blocked_name == module_name) {
|
||||||
|
None
|
||||||
|
} else if let Some(overridden_name) = module_name_overrides.get(module_name) {
|
||||||
|
Some(overridden_name.to_string())
|
||||||
|
} else if let Some(renamed) = RENAME_MAP.get(module_name) {
|
||||||
|
Some(renamed.to_string())
|
||||||
} else {
|
} else {
|
||||||
name
|
Some(module_name.to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -561,14 +571,21 @@ fn generate_android_bp(
|
|||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let mut m = BpModule::new("genrule".to_string());
|
let mut m = BpModule::new("genrule".to_string());
|
||||||
let module_name = format!("copy_{}_build_out", package_name);
|
if let Some(module_name) = override_module_name(
|
||||||
m.props.set("name", module_name.clone());
|
&format!("copy_{}_build_out", package_name),
|
||||||
m.props.set("srcs", vec!["out/*"]);
|
&cfg.module_blocklist,
|
||||||
m.props.set("cmd", "cp $(in) $(genDir)");
|
&cfg.module_name_overrides,
|
||||||
m.props.set("out", outs);
|
) {
|
||||||
modules.push(m);
|
m.props.set("name", module_name.clone());
|
||||||
|
m.props.set("srcs", vec!["out/*"]);
|
||||||
|
m.props.set("cmd", "cp $(in) $(genDir)");
|
||||||
|
m.props.set("out", outs);
|
||||||
|
modules.push(m);
|
||||||
|
|
||||||
vec![":".to_string() + &module_name]
|
vec![":".to_string() + &module_name]
|
||||||
|
} else {
|
||||||
|
vec![]
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
vec![]
|
vec![]
|
||||||
};
|
};
|
||||||
@@ -699,11 +716,11 @@ fn crate_to_bp_modules(
|
|||||||
};
|
};
|
||||||
|
|
||||||
let mut m = BpModule::new(module_type.clone());
|
let mut m = BpModule::new(module_type.clone());
|
||||||
if cfg.module_blocklist.iter().any(|blocked_name| blocked_name == &module_name) {
|
let Some(module_name) =
|
||||||
|
override_module_name(&module_name, &cfg.module_blocklist, &cfg.module_name_overrides)
|
||||||
|
else {
|
||||||
continue;
|
continue;
|
||||||
}
|
};
|
||||||
let module_name = cfg.module_name_overrides.get(&module_name).unwrap_or(&module_name);
|
|
||||||
let module_name = renamed_module(module_name);
|
|
||||||
if matches!(
|
if matches!(
|
||||||
crate_type,
|
crate_type,
|
||||||
CrateType::Lib
|
CrateType::Lib
|
||||||
@@ -715,7 +732,7 @@ fn crate_to_bp_modules(
|
|||||||
{
|
{
|
||||||
bail!("Module name must start with lib{} but was {}", crate_.name, module_name);
|
bail!("Module name must start with lib{} but was {}", crate_.name, module_name);
|
||||||
}
|
}
|
||||||
m.props.set("name", module_name);
|
m.props.set("name", module_name.clone());
|
||||||
|
|
||||||
if let Some(defaults) = &cfg.global_defaults {
|
if let Some(defaults) = &cfg.global_defaults {
|
||||||
m.props.set("defaults", vec![defaults.clone()]);
|
m.props.set("defaults", vec![defaults.clone()]);
|
||||||
@@ -788,13 +805,13 @@ fn crate_to_bp_modules(
|
|||||||
let mut result = Vec::new();
|
let mut result = Vec::new();
|
||||||
for x in libs {
|
for x in libs {
|
||||||
let module_name = "lib".to_string() + x.as_str();
|
let module_name = "lib".to_string() + x.as_str();
|
||||||
let module_name =
|
if let Some(module_name) = override_module_name(
|
||||||
cfg.module_name_overrides.get(&module_name).unwrap_or(&module_name);
|
&module_name,
|
||||||
let module_name = renamed_module(module_name);
|
&package_cfg.dep_blocklist,
|
||||||
if package_cfg.dep_blocklist.iter().any(|blocked| blocked == module_name) {
|
&cfg.module_name_overrides,
|
||||||
continue;
|
) {
|
||||||
|
result.push(module_name);
|
||||||
}
|
}
|
||||||
result.push(module_name.to_string());
|
|
||||||
}
|
}
|
||||||
result.sort();
|
result.sort();
|
||||||
result
|
result
|
||||||
@@ -853,7 +870,7 @@ fn crate_to_bp_modules(
|
|||||||
m.props.set("stdlibs", stdlibs);
|
m.props.set("stdlibs", stdlibs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(visibility) = cfg.module_visibility.get(module_name) {
|
if let Some(visibility) = cfg.module_visibility.get(&module_name) {
|
||||||
m.props.set("visibility", visibility.clone());
|
m.props.set("visibility", visibility.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user