Clean up filesystem_creator
By modifying the definition of type multilibDeps
Test: m nothing --no-skip-soong-tests
Change-Id: I10774f23783457b43010c7427092063d06c0df89
diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go
index 001cac8..06e154a 100644
--- a/fsgen/filesystem_creator.go
+++ b/fsgen/filesystem_creator.go
@@ -68,7 +68,7 @@
}
// Map of module name to depCandidateProps
-type multilibDeps *map[string]*depCandidateProps
+type multilibDeps map[string]*depCandidateProps
// Information necessary to generate the filesystem modules, including details about their
// dependencies
@@ -76,7 +76,7 @@
// List of modules in `PRODUCT_PACKAGES` and `PRODUCT_PACKAGES_DEBUG`
depCandidates []string
// Map of names of partition to the information of modules to be added as deps
- fsDeps map[string]multilibDeps
+ fsDeps map[string]*multilibDeps
// List of name of partitions to be generated by the filesystem_creator module
soongGeneratedPartitions []string
// Mutex to protect the fsDeps
@@ -90,10 +90,6 @@
Overrides []string
}
-func newMultilibDeps() multilibDeps {
- return &map[string]*depCandidateProps{}
-}
-
func defaultDepCandidateProps(config android.Config) *depCandidateProps {
return &depCandidateProps{
Namespace: ".",
@@ -122,9 +118,9 @@
return &FsGenState{
depCandidates: candidates,
- fsDeps: map[string]multilibDeps{
+ fsDeps: map[string]*multilibDeps{
// These additional deps are added according to the cuttlefish system image bp.
- "system": &map[string]*depCandidateProps{
+ "system": {
"com.android.apex.cts.shim.v1_prebuilt": defaultDepCandidateProps(ctx.Config()),
"dex_bootjars": defaultDepCandidateProps(ctx.Config()),
"framework_compatibility_matrix.device.xml": defaultDepCandidateProps(ctx.Config()),
@@ -142,19 +138,19 @@
"public.libraries.android.txt": defaultDepCandidateProps(ctx.Config()),
"update_engine_sideload": defaultDepCandidateProps(ctx.Config()),
},
- "vendor": &map[string]*depCandidateProps{
+ "vendor": {
"fs_config_files_vendor": defaultDepCandidateProps(ctx.Config()),
"fs_config_dirs_vendor": defaultDepCandidateProps(ctx.Config()),
generatedModuleName(ctx.Config(), "vendor-build.prop"): defaultDepCandidateProps(ctx.Config()),
},
- "odm": &map[string]*depCandidateProps{
+ "odm": {
// fs_config_* files are automatically installed for all products with odm partitions.
// https://cs.android.com/android/_/android/platform/build/+/e4849e87ab660b59a6501b3928693db065ee873b:tools/fs_config/Android.mk;l=34;drc=8d6481b92c4b4e9b9f31a61545b6862090fcc14b;bpv=1;bpt=0
"fs_config_files_odm": defaultDepCandidateProps(ctx.Config()),
"fs_config_dirs_odm": defaultDepCandidateProps(ctx.Config()),
},
- "product": newMultilibDeps(),
- "system_ext": &map[string]*depCandidateProps{
+ "product": {},
+ "system_ext": {
// VNDK apexes are automatically included.
// This hardcoded list will need to be updated if `PRODUCT_EXTRA_VNDK_VERSIONS` is updated.
// https://cs.android.com/android/_/android/platform/build/+/adba533072b00c53ac0f198c550a3cbd7a00e4cd:core/main.mk;l=984;bpv=1;bpt=0;drc=174db7b179592cf07cbfd2adb0119486fda911e7
@@ -172,14 +168,14 @@
}).(*FsGenState)
}
-func checkDepModuleInMultipleNamespaces(mctx android.BottomUpMutatorContext, foundDeps map[string]*depCandidateProps, module string, partitionName string) {
+func checkDepModuleInMultipleNamespaces(mctx android.BottomUpMutatorContext, foundDeps multilibDeps, module string, partitionName string) {
otherNamespace := mctx.Namespace().Path
if val, found := foundDeps[module]; found && otherNamespace != "." && !android.InList(val.Namespace, []string{".", otherNamespace}) {
mctx.ModuleErrorf("found in multiple namespaces(%s and %s) when including in %s partition", val.Namespace, otherNamespace, partitionName)
}
}
-func appendDepIfAppropriate(mctx android.BottomUpMutatorContext, deps *map[string]*depCandidateProps, installPartition string) {
+func appendDepIfAppropriate(mctx android.BottomUpMutatorContext, deps *multilibDeps, installPartition string) {
checkDepModuleInMultipleNamespaces(mctx, *deps, mctx.Module().Name(), installPartition)
if _, ok := (*deps)[mctx.Module().Name()]; ok {
// Prefer the namespace-specific module over the platform module