aboutsummaryrefslogtreecommitdiff
path: root/java/system_modules.go
diff options
context:
space:
mode:
authormosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
committermosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
commitc7bade461dc55726f62997d13a48582f7c4b4655 (patch)
treeea0588da76060a2038f54f67efd046ca77634b10 /java/system_modules.go
parent0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff)
parent89d78cff8b00d3b20a90074635c3fe5a2ee49474 (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.go34
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) {