diff options
Diffstat (limited to 'apex/apex.go')
-rw-r--r-- | apex/apex.go | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/apex/apex.go b/apex/apex.go index 4dd605544..1f4a99b55 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -577,6 +577,8 @@ type apexFile struct { customStem string symlinks []string // additional symlinks + checkbuildTarget android.Path + // Info for Android.mk Module name of `module` in AndroidMk. Note the generated AndroidMk // module for apexFile is named something like <AndroidMk module name>.<apex name>[<apex // suffix>] @@ -612,6 +614,9 @@ func newApexFile(ctx android.BaseModuleContext, builtFile android.Path, androidM module: module, } if module != nil { + if installFilesInfo, ok := android.OtherModuleProvider(ctx, module, android.InstallFilesProvider); ok { + ret.checkbuildTarget = installFilesInfo.CheckbuildTarget + } ret.moduleDir = ctx.OtherModuleDir(module) ret.partition = module.PartitionTag(ctx.DeviceConfig()) ret.requiredModuleNames = module.RequiredModuleNames(ctx) @@ -1938,8 +1943,6 @@ type visitorContext struct { // visitor skips these from this list of module names unwantedTransitiveDeps []string - - aconfigFiles []android.Path } func (vctx *visitorContext) normalizeFileInfo(mctx android.ModuleContext) { @@ -2006,7 +2009,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, fi := apexFileForNativeLibrary(ctx, ch, vctx.handleSpecialLibs) fi.isJniLib = isJniLib vctx.filesInfo = append(vctx.filesInfo, fi) - addAconfigFiles(vctx, ctx, child) // Collect the list of stub-providing libs except: // - VNDK libs are only for vendors // - bootstrap bionic libs are treated as provided by system @@ -2018,7 +2020,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, fi := apexFileForRustLibrary(ctx, ch) fi.isJniLib = isJniLib vctx.filesInfo = append(vctx.filesInfo, fi) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies default: ctx.PropertyErrorf(propertyName, "%q is not a cc_library or cc_library_shared module", depName) @@ -2027,11 +2028,9 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, switch ch := child.(type) { case *cc.Module: vctx.filesInfo = append(vctx.filesInfo, apexFileForExecutable(ctx, ch)) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies case *rust.Module: vctx.filesInfo = append(vctx.filesInfo, apexFileForRustExecutable(ctx, ch)) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies default: ctx.PropertyErrorf("binaries", @@ -2071,7 +2070,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, return false } vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies default: ctx.PropertyErrorf("java_libs", "%q of type %q is not supported", depName, ctx.OtherModuleType(child)) @@ -2080,14 +2078,11 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, switch ap := child.(type) { case *java.AndroidApp: vctx.filesInfo = append(vctx.filesInfo, apexFilesForAndroidApp(ctx, ap)...) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies case *java.AndroidAppImport: vctx.filesInfo = append(vctx.filesInfo, apexFilesForAndroidApp(ctx, ap)...) - addAconfigFiles(vctx, ctx, child) case *java.AndroidTestHelperApp: vctx.filesInfo = append(vctx.filesInfo, apexFilesForAndroidApp(ctx, ap)...) - addAconfigFiles(vctx, ctx, child) case *java.AndroidAppSet: appDir := "app" if ap.Privileged() { @@ -2101,7 +2096,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, af := newApexFile(ctx, ap.OutputFile(), ap.BaseModuleName(), appDirName, appSet, ap) af.certificate = java.PresignedCertificate vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) default: ctx.PropertyErrorf("apps", "%q is not an android_app module", depName) } @@ -2133,7 +2127,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, for _, etcFile := range filesToCopy { vctx.filesInfo = append(vctx.filesInfo, apexFileForPrebuiltEtc(ctx, prebuilt, etcFile)) } - addAconfigFiles(vctx, ctx, child) } else { ctx.PropertyErrorf("prebuilts", "%q is not a prebuilt_etc module", depName) } @@ -2148,7 +2141,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, af := apexFileForExecutable(ctx, ccTest) af.class = nativeTest vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies } else { ctx.PropertyErrorf("tests", "%q is not a cc module", depName) @@ -2228,7 +2220,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, } vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies } else if rm, ok := child.(*rust.Module); ok { if !android.IsDepInSameApex(ctx, am, am) { @@ -2238,7 +2229,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, af := apexFileForRustLibrary(ctx, rm) af.transitiveDep = true vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies } } else if cc.IsHeaderDepTag(depTag) { @@ -2261,7 +2251,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, af := apexFileForRustLibrary(ctx, rustm) af.transitiveDep = true vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies } } else if rust.IsRlibDepTag(depTag) { @@ -2280,7 +2269,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, return false } vctx.filesInfo = append(vctx.filesInfo, af) - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies default: ctx.PropertyErrorf("bootclasspath_fragments", @@ -2295,7 +2283,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, if profileAf := apexFileForJavaModuleProfile(ctx, child.(javaModule)); profileAf != nil { vctx.filesInfo = append(vctx.filesInfo, *profileAf) } - addAconfigFiles(vctx, ctx, child) return true // track transitive dependencies default: ctx.PropertyErrorf("systemserverclasspath_fragments", @@ -2313,19 +2300,6 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext, return false } -func addAconfigFiles(vctx *visitorContext, ctx android.ModuleContext, module blueprint.Module) { - if dep, ok := android.OtherModuleProvider(ctx, module, android.AconfigPropagatingProviderKey); ok { - if len(dep.AconfigFiles) > 0 && dep.AconfigFiles[ctx.ModuleName()] != nil { - vctx.aconfigFiles = append(vctx.aconfigFiles, dep.AconfigFiles[ctx.ModuleName()]...) - } - } - - validationFlag := ctx.DeviceConfig().AconfigContainerValidation() - if validationFlag == "error" || validationFlag == "warning" { - android.VerifyAconfigBuildMode(ctx, ctx.ModuleName(), module, validationFlag == "error") - } -} - func (a *apexBundle) shouldCheckDuplicate(ctx android.ModuleContext) bool { // TODO(b/263308293) remove this if a.properties.IsCoverageVariant { @@ -2407,13 +2381,16 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { // 3) some fields in apexBundle struct are configured a.installDir = android.PathForModuleInstall(ctx, "apex") a.filesInfo = vctx.filesInfo - a.aconfigFiles = android.FirstUniquePaths(vctx.aconfigFiles) a.setPayloadFsType(ctx) a.setSystemLibLink(ctx) a.compatSymlinks = makeCompatSymlinks(a.BaseModuleName(), ctx) //////////////////////////////////////////////////////////////////////////////////////////// + // 3.a) some artifacts are generated from the collected files + a.filesInfo = append(a.filesInfo, a.buildAconfigFiles(ctx)...) + + //////////////////////////////////////////////////////////////////////////////////////////// // 4) generate the build rules to create the APEX. This is done in builder.go. a.buildManifest(ctx, vctx.provideNativeLibs, vctx.requireNativeLibs) a.buildApex(ctx) |