Loading fsgen/filesystem_creator.go +10 −14 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ type depCandidateProps struct { } // 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 Loading @@ -76,7 +76,7 @@ type FsGenState struct { // 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 Loading @@ -90,10 +90,6 @@ type installationProperties struct { Overrides []string } func newMultilibDeps() multilibDeps { return &map[string]*depCandidateProps{} } func defaultDepCandidateProps(config android.Config) *depCandidateProps { return &depCandidateProps{ Namespace: ".", Loading Loading @@ -122,9 +118,9 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { 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()), Loading @@ -142,19 +138,19 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { "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 Loading @@ -172,14 +168,14 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { }).(*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 Loading Loading
fsgen/filesystem_creator.go +10 −14 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ type depCandidateProps struct { } // 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 Loading @@ -76,7 +76,7 @@ type FsGenState struct { // 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 Loading @@ -90,10 +90,6 @@ type installationProperties struct { Overrides []string } func newMultilibDeps() multilibDeps { return &map[string]*depCandidateProps{} } func defaultDepCandidateProps(config android.Config) *depCandidateProps { return &depCandidateProps{ Namespace: ".", Loading Loading @@ -122,9 +118,9 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { 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()), Loading @@ -142,19 +138,19 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { "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 Loading @@ -172,14 +168,14 @@ func createFsGenState(ctx android.LoadHookContext) *FsGenState { }).(*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 Loading