diff options
author | 2024-11-11 22:31:55 +0000 | |
---|---|---|
committer | 2024-11-11 22:56:40 +0000 | |
commit | 7103c4ffd6197d7c18b2f4474b134ad0441f9895 (patch) | |
tree | 40b3e5ae494870e801aca794055ed642c5770536 /java/systemserver_classpath_fragment.go | |
parent | 3f6305935f623bb150605c2d0342751e78924b4e (diff) |
Make Contents and Standalone_contents configurable
For use in Android.bp select statements
Test: m nothing --no-skip-soong-tests
Bug: 373868171
Change-Id: I2ca90dd1289c4cf7f728a00db93d08516856fdfa
Diffstat (limited to 'java/systemserver_classpath_fragment.go')
-rw-r--r-- | java/systemserver_classpath_fragment.go | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/java/systemserver_classpath_fragment.go b/java/systemserver_classpath_fragment.go index aad106007..608a61628 100644 --- a/java/systemserver_classpath_fragment.go +++ b/java/systemserver_classpath_fragment.go @@ -19,6 +19,7 @@ import ( "android/soong/dexpreopt" "github.com/google/blueprint" + "github.com/google/blueprint/proptools" ) func init() { @@ -98,12 +99,12 @@ type systemServerClasspathFragmentProperties struct { // List of system_server classpath jars, could be either java_library, or java_sdk_library. // // The order of this list matters as it is the order that is used in the SYSTEMSERVERCLASSPATH. - Contents []string + Contents proptools.Configurable[[]string] `android:"arch_variant"` // List of jars that system_server loads dynamically using separate classloaders. // // The order does not matter. - Standalone_contents []string + Standalone_contents proptools.Configurable[[]string] `android:"arch_variant"` } func systemServerClasspathFactory() android.Module { @@ -116,7 +117,7 @@ func systemServerClasspathFactory() android.Module { } func (s *SystemServerClasspathModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { - if len(s.properties.Contents) == 0 && len(s.properties.Standalone_contents) == 0 { + if len(s.properties.Contents.GetOrDefault(ctx, nil)) == 0 && len(s.properties.Standalone_contents.GetOrDefault(ctx, nil)) == 0 { ctx.PropertyErrorf("contents", "Either contents or standalone_contents needs to be non-empty") } @@ -152,7 +153,7 @@ func (s *SystemServerClasspathModule) setPartitionInfoOfLibraries(ctx android.Mo func (s *SystemServerClasspathModule) configuredJars(ctx android.ModuleContext) android.ConfiguredJarList { global := dexpreopt.GetGlobalConfig(ctx) - possibleUpdatableModules := gatherPossibleApexModuleNamesAndStems(ctx, s.properties.Contents, systemServerClasspathFragmentContentDepTag) + possibleUpdatableModules := gatherPossibleApexModuleNamesAndStems(ctx, s.properties.Contents.GetOrDefault(ctx, nil), systemServerClasspathFragmentContentDepTag) jars, unknown := global.ApexSystemServerJars.Filter(possibleUpdatableModules) // TODO(satayev): remove geotz ssc_fragment, since geotz is not part of SSCP anymore. _, unknown = android.RemoveFromList("geotz", unknown) @@ -184,7 +185,7 @@ func (s *SystemServerClasspathModule) configuredJars(ctx android.ModuleContext) func (s *SystemServerClasspathModule) standaloneConfiguredJars(ctx android.ModuleContext) android.ConfiguredJarList { global := dexpreopt.GetGlobalConfig(ctx) - possibleUpdatableModules := gatherPossibleApexModuleNamesAndStems(ctx, s.properties.Standalone_contents, systemServerClasspathFragmentContentDepTag) + possibleUpdatableModules := gatherPossibleApexModuleNamesAndStems(ctx, s.properties.Standalone_contents.GetOrDefault(ctx, nil), systemServerClasspathFragmentContentDepTag) jars, _ := global.ApexStandaloneSystemServerJars.Filter(possibleUpdatableModules) // TODO(jiakaiz): add a check to ensure that the contents are declared in make. @@ -245,8 +246,8 @@ func (s *SystemServerClasspathModule) ComponentDepsMutator(ctx android.BottomUpM module := ctx.Module() _, isSourceModule := module.(*SystemServerClasspathModule) var deps []string - deps = append(deps, s.properties.Contents...) - deps = append(deps, s.properties.Standalone_contents...) + deps = append(deps, s.properties.Contents.GetOrDefault(ctx, nil)...) + deps = append(deps, s.properties.Standalone_contents.GetOrDefault(ctx, nil)...) for _, name := range deps { // A systemserverclasspath_fragment must depend only on other source modules, while the @@ -260,8 +261,8 @@ func (s *SystemServerClasspathModule) ComponentDepsMutator(ctx android.BottomUpM // Collect information for opening IDE project files in java/jdeps.go. func (s *SystemServerClasspathModule) IDEInfo(ctx android.BaseModuleContext, dpInfo *android.IdeInfo) { - dpInfo.Deps = append(dpInfo.Deps, s.properties.Contents...) - dpInfo.Deps = append(dpInfo.Deps, s.properties.Standalone_contents...) + dpInfo.Deps = append(dpInfo.Deps, s.properties.Contents.GetOrDefault(ctx, nil)...) + dpInfo.Deps = append(dpInfo.Deps, s.properties.Standalone_contents.GetOrDefault(ctx, nil)...) } type systemServerClasspathFragmentMemberType struct { @@ -302,8 +303,8 @@ type systemServerClasspathFragmentSdkMemberProperties struct { func (s *systemServerClasspathFragmentSdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { module := variant.(*SystemServerClasspathModule) - s.Contents = module.properties.Contents - s.Standalone_contents = module.properties.Standalone_contents + s.Contents = module.properties.Contents.GetOrDefault(ctx.SdkModuleContext(), nil) + s.Standalone_contents = module.properties.Standalone_contents.GetOrDefault(ctx.SdkModuleContext(), nil) } func (s *systemServerClasspathFragmentSdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { |