diff options
| author | mosimchah <mosimchah@gmail.com> | 2025-12-02 09:27:38 -0500 |
|---|---|---|
| committer | mosimchah <mosimchah@gmail.com> | 2025-12-02 09:27:38 -0500 |
| commit | c7bade461dc55726f62997d13a48582f7c4b4655 (patch) | |
| tree | ea0588da76060a2038f54f67efd046ca77634b10 /java/system_modules.go | |
| parent | 0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff) | |
| parent | 89d78cff8b00d3b20a90074635c3fe5a2ee49474 (diff) | |
Merge branch 'lineage-23.1' of https://github.com/LineageOS/android_build_soong into HEADw16.1
* 'lineage-23.1' of https://github.com/LineageOS/android_build_soong: (528 commits)
Revert "install_symlink: Make symlink target configurable"
Reapply "Clear as much of cc.Module as possible after GenerateBuildActions"
Revert "rust: config: Fix missing CPU variant LD flags in Rust"
Rename build-flag in outdir
Revert^4 "cipd: Default CIPD proxy server to on, add opt-out"
Convert check-vintf-all to phony with actions
Create a partial implementation of check-vintf-all for soong-only
Configure RBE rust pool based on build variant
Revert^3 "Add sdk version check to arr"
Add jdk.internal.invoke to the allowlist
Make droid always depend on symbols zip
Import Device and Odm skus
Don't install gob_gen in Soong
Remove bazel reference from run_integration_tests.sh
Fix bootstrap_test.sh
Don't panic in aconfig libraries when AllowMissingDependencies is set
Avoid returning nil paths from PathForModuleSrc
Revert "Flag controled clang version"
Rework module target dependencies on required deps
Revert^2 "Add sdk version check to arr"
...
Change-Id: I6e9a63fa14fda917a42e426e5dcebbad7f67e1de
Diffstat (limited to 'java/system_modules.go')
| -rw-r--r-- | java/system_modules.go | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/java/system_modules.go b/java/system_modules.go index e955aec15..5ced86efc 100644 --- a/java/system_modules.go +++ b/java/system_modules.go @@ -29,6 +29,8 @@ import ( // file will produce the rules necessary to convert each unique set of bootclasspath jars into // system modules in a runtime image using the jmod and jlink tools. +//go:generate go run ../../blueprint/gobtools/codegen/gob_gen.go + func init() { RegisterSystemModulesBuildComponents(android.InitRegistrationContext) @@ -121,6 +123,7 @@ func SystemModulesFactory() android.Module { return module } +// @auto-generate: gob type SystemModulesProviderInfo struct { // The aggregated header jars from all jars specified in the libs property. // Used when system module is added as a dependency to bootclasspath. @@ -131,6 +134,8 @@ type SystemModulesProviderInfo struct { // depset of header jars for this module and all transitive static dependencies TransitiveStaticLibsHeaderJars depset.DepSet[android.Path] + Prebuilt bool + Libs []string } var SystemModulesProvider = blueprint.NewProvider[*SystemModulesProviderInfo]() @@ -150,11 +155,21 @@ type SystemModulesProperties struct { Libs []string } +func (system *systemModulesImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { + info := system.commonBuildActions(ctx) + info.Prebuilt = true + android.SetProvider(ctx, SystemModulesProvider, info) +} + func (system *SystemModules) GenerateAndroidBuildActions(ctx android.ModuleContext) { + android.SetProvider(ctx, SystemModulesProvider, system.commonBuildActions(ctx)) +} + +func (system *SystemModules) commonBuildActions(ctx android.ModuleContext) *SystemModulesProviderInfo { var jars android.Paths var transitiveStaticLibsHeaderJars []depset.DepSet[android.Path] - ctx.VisitDirectDepsWithTag(systemModulesLibsTag, func(module android.Module) { + ctx.VisitDirectDepsProxyWithTag(systemModulesLibsTag, func(module android.ModuleProxy) { if dep, ok := android.OtherModuleProvider(ctx, module, JavaInfoProvider); ok { jars = append(jars, dep.HeaderJars...) transitiveStaticLibsHeaderJars = append(transitiveStaticLibsHeaderJars, dep.TransitiveStaticLibsHeaderJars) @@ -163,12 +178,13 @@ func (system *SystemModules) GenerateAndroidBuildActions(ctx android.ModuleConte system.outputDir, system.outputDeps = TransformJarsToSystemModules(ctx, jars) - android.SetProvider(ctx, SystemModulesProvider, &SystemModulesProviderInfo{ + return &SystemModulesProviderInfo{ HeaderJars: jars, OutputDir: system.outputDir, OutputDirDeps: system.outputDeps, TransitiveStaticLibsHeaderJars: depset.New(depset.PREORDER, nil, transitiveStaticLibsHeaderJars), - }) + Libs: system.properties.Libs, + } } // ComponentDepsMutator is called before prebuilt modules without a corresponding source module are @@ -275,12 +291,11 @@ func (mt *systemModulesSdkMemberType) AddDependencies(ctx android.SdkDependencyC ctx.AddVariationDependencies(nil, dependencyTag, names...) } -func (mt *systemModulesSdkMemberType) IsInstance(module android.Module) bool { - if _, ok := module.(*SystemModules); ok { +func (mt *systemModulesSdkMemberType) IsInstance(ctx android.ModuleContext, module android.ModuleProxy) bool { + if info, ok := android.OtherModuleProvider(ctx, module, SystemModulesProvider); ok { // A prebuilt system module cannot be added as a member of an sdk because the source and // snapshot instances would conflict. - _, ok := module.(*systemModulesImport) - return !ok + return !info.Prebuilt } return false } @@ -299,9 +314,8 @@ func (mt *systemModulesSdkMemberType) CreateVariantPropertiesStruct() android.Sd return &systemModulesInfoProperties{} } -func (p *systemModulesInfoProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { - systemModule := variant.(*SystemModules) - p.Libs = systemModule.properties.Libs +func (p *systemModulesInfoProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.ModuleProxy) { + p.Libs = android.OtherModulePointerProviderOrDefault(ctx.SdkModuleContext(), variant, SystemModulesProvider).Libs } func (p *systemModulesInfoProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { |
