Lines Matching refs:a
317 func (a *AndroidApp) IsInstallable() bool {
318 return Bool(a.properties.Installable)
321 func (a *AndroidApp) ExportedProguardFlagFiles() android.Paths {
325 func (a *AndroidApp) ExportedStaticPackages() android.Paths {
329 func (a *AndroidApp) OutputFile() android.Path {
330 return a.outputFile
333 func (a *AndroidApp) Certificate() Certificate {
334 return a.certificate
337 func (a *AndroidApp) JniCoverageOutputs() android.Paths {
338 return a.jniCoverageOutputs
358 func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) {
359 a.Module.deps(ctx)
361 if String(a.appProperties.Stl) == "c++_shared" && !a.sdkVersion().specified() {
365 sdkDep := decodeSdkDep(ctx, sdkContext(a))
367 a.aapt.deps(ctx, sdkDep)
370 usesSDK := a.sdkVersion().specified() && a.sdkVersion().kind != sdkCorePlatform
372 if usesSDK && Bool(a.appProperties.Jni_uses_sdk_apis) {
375 } else if !usesSDK && Bool(a.appProperties.Jni_uses_platform_apis) {
389 if (usesSDK && !a.RequiresStableAPIs(ctx) &&
390 !Bool(a.appProperties.Jni_uses_platform_apis)) ||
391 Bool(a.appProperties.Jni_uses_sdk_apis) {
394 ctx.AddFarVariationDependencies(variation, tag, a.appProperties.Jni_libs...)
397 a.usesLibrary.deps(ctx, sdkDep.hasFrameworkLibs())
400 func (a *AndroidApp) OverridablePropertiesDepsMutator(ctx android.BottomUpMutatorContext) {
401 cert := android.SrcIsModule(a.getCertString(ctx))
406 for _, cert := range a.appProperties.Additional_certificates {
417 func (a *AndroidTestHelperApp) GenerateAndroidBuildActions(ctx android.ModuleContext) {
418 a.generateAndroidBuildActions(ctx)
421 func (a *AndroidApp) GenerateAndroidBuildActions(ctx android.ModuleContext) {
422 a.checkAppSdkVersions(ctx)
423 a.generateAndroidBuildActions(ctx)
426 func (a *AndroidApp) checkAppSdkVersions(ctx android.ModuleContext) {
427 if a.Updatable() {
428 if !a.sdkVersion().stable() {
429 … ctx.PropertyErrorf("sdk_version", "Updatable apps must use stable SDKs, found %v", a.sdkVersion())
431 if String(a.deviceProperties.Min_sdk_version) == "" {
434 if minSdkVersion, err := a.minSdkVersion().effectiveVersion(ctx); err == nil {
435 a.checkJniLibsSdkVersion(ctx, minSdkVersion)
441 a.checkPlatformAPI(ctx)
442 a.checkSdkVersions(ctx)
451 func (a *AndroidApp) checkJniLibsSdkVersion(ctx android.ModuleContext, minSdkVersion sdkVersion) {
473 func (a *AndroidApp) useEmbeddedNativeLibs(ctx android.ModuleContext) bool {
474 minSdkVersion, err := a.minSdkVersion().effectiveVersion(ctx)
476 ctx.PropertyErrorf("min_sdk_version", "invalid value %q: %s", a.minSdkVersion(), err)
479 return (minSdkVersion >= 23 && Bool(a.appProperties.Use_embedded_native_libs)) ||
480 !a.IsForPlatform()
484 func (a *AndroidApp) shouldUncompressDex(ctx android.ModuleContext) bool {
485 if Bool(a.appProperties.Use_embedded_dex) {
491 if ctx.Config().UncompressPrivAppDex() && a.Privileged() {
499 return shouldUncompressDex(ctx, &a.dexpreopter)
502 func (a *AndroidApp) shouldEmbedJnis(ctx android.BaseModuleContext) bool {
503 return ctx.Config().UnbundledBuild() || Bool(a.appProperties.Use_embedded_native_libs) ||
504 !a.IsForPlatform() || a.appProperties.AlwaysPackageNativeLibs
507 func (a *AndroidApp) OverriddenManifestPackageName() string {
508 return a.overriddenManifestPackageName
511 func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
512 a.aapt.usesNonSdkApis = Bool(a.Module.deviceProperties.Platform_apis)
515 a.aapt.hasNoCode = !a.hasCode(ctx)
520 hasProduct := android.PrefixInList(a.aaptProperties.Aaptflags, "--product")
525 if !Bool(a.aaptProperties.Aapt_include_all_resources) {
538 if overridden || a.overridableAppProperties.Package_name != nil {
541 manifestPackageName = *a.overridableAppProperties.Package_name
544 a.overriddenManifestPackageName = manifestPackageName
547 aaptLinkFlags = append(aaptLinkFlags, a.additionalAaptFlags...)
549 a.aapt.splitNames = a.appProperties.Package_splits
550 a.aapt.sdkLibraries = a.exportedSdkLibs
551 a.aapt.LoggingParent = String(a.overridableAppProperties.Logging_parent)
552 a.aapt.buildActions(ctx, sdkContext(a), aaptLinkFlags...)
555 a.properties.Manifest = nil
558 func (a *AndroidApp) proguardBuildActions(ctx android.ModuleContext) {
568 …a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, staticLibProguardFlagFil…
569 a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, a.proguardOptionsFile)
572 func (a *AndroidApp) installPath(ctx android.ModuleContext) android.InstallPath {
577 } else if a.Privileged() {
578 installDir = filepath.Join("priv-app", a.installApkName)
580 installDir = filepath.Join("app", a.installApkName)
583 return android.PathForModuleInstall(ctx, installDir, a.installApkName+".apk")
586 func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path {
587 a.dexpreopter.installPath = a.installPath(ctx)
588 if a.deviceProperties.Uncompress_dex == nil {
590 a.deviceProperties.Uncompress_dex = proptools.BoolPtr(a.shouldUncompressDex(ctx))
592 a.dexpreopter.uncompressedDex = *a.deviceProperties.Uncompress_dex
593 a.dexpreopter.enforceUsesLibs = a.usesLibrary.enforceUsesLibraries()
594 a.dexpreopter.usesLibs = a.usesLibrary.usesLibraryProperties.Uses_libs
595 a.dexpreopter.optionalUsesLibs = a.usesLibrary.presentOptionalUsesLibs(ctx)
596 a.dexpreopter.libraryPaths = a.usesLibrary.usesLibraryPaths(ctx)
597 a.dexpreopter.manifestFile = a.mergedManifestFile
600 a.Module.compile(ctx, a.aaptSrcJar)
603 return a.maybeStrippedDexJarFile
606 func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext) android.WritableP…
609 a.jniLibs = jniLibs
610 if a.shouldEmbedJnis(ctx) {
612 a.installPathForJNISymbols = a.installPath(ctx).ToMakePath()
613 TransformJniLibsToJar(ctx, jniJarFile, jniLibs, a.useEmbeddedNativeLibs(ctx))
626 a.jniCoverageOutputs = append(a.jniCoverageOutputs, jni.coverageFile.Path())
630 a.embeddedJniLibs = true
636 func (a *AndroidApp) JNISymbolsInstalls(installPath string) android.RuleBuilderInstalls {
638 for _, jniLib := range a.jniLibs {
649 func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext) {
674 if a.NoticeFile().Valid() {
675 noticePathSet[a.NoticeFile().Path()] = true
689 …a.noticeOutputs = android.BuildNoticeOutput(ctx, a.installDir, a.installApkName+".apk", noticePath…
729 func (a *AndroidApp) InstallApkName() string {
730 return a.installApkName
733 func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
736 a.aapt.useEmbeddedNativeLibs = a.useEmbeddedNativeLibs(ctx)
737 a.aapt.useEmbeddedDex = Bool(a.appProperties.Use_embedded_dex)
740 a.installApkName = ctx.DeviceConfig().OverridePackageNameFor(a.Name())
744 a.installDir = android.PathForModuleInstall(ctx, "framework")
745 } else if a.Privileged() {
746 a.installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName)
748 …a.installDir = android.PathForModuleInstall(ctx, a.installApkName, ctx.DeviceConfig().DeviceArch())
750 a.installDir = android.PathForModuleInstall(ctx, "app", a.installApkName)
752 a.onDeviceDir = android.InstallPathToOnDevicePath(ctx, a.installDir)
754 a.noticeBuildActions(ctx)
755 if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") {
756 a.aapt.noticeFile = a.noticeOutputs.HtmlGzOutput
760 a.aaptBuildActions(ctx)
762 if a.usesLibrary.enforceUsesLibraries() {
763 manifestCheckFile := a.usesLibrary.verifyUsesLibrariesManifest(ctx, a.mergedManifestFile)
767 a.proguardBuildActions(ctx)
769 a.linter.mergedManifest = a.aapt.mergedManifestFile
770 a.linter.manifest = a.aapt.manifestPath
771 a.linter.resources = a.aapt.resourceFiles
772 a.linter.buildModuleReportZip = ctx.Config().UnbundledBuild()
774 dexJarFile := a.dexBuildActions(ctx)
776 …jniLibs, certificateDeps := collectAppDeps(ctx, a, a.shouldEmbedJnis(ctx), !Bool(a.appProperties.J…
777 jniJarFile := a.jniBuildActions(jniLibs, ctx)
783 certificates := processMainCert(a.ModuleBase, a.getCertString(ctx), certificateDeps, ctx)
784 a.certificate = certificates[0]
787 packageFile := android.PathForModuleOut(ctx, a.installApkName+".apk")
788 v4SigningRequested := Bool(a.Module.deviceProperties.V4_signature)
791 v4SignatureFile = android.PathForModuleOut(ctx, a.installApkName+".apk.idsig")
794 if lineage := String(a.overridableAppProperties.Lineage); lineage != "" {
797 …CreateAndSignAppPackage(ctx, packageFile, a.exportPackage, jniJarFile, dexJarFile, certificates, a…
798 a.outputFile = packageFile
800 a.extraOutputFiles = append(a.extraOutputFiles, v4SignatureFile)
803 for _, split := range a.aapt.splits {
805 packageFile := android.PathForModuleOut(ctx, a.installApkName+"_"+split.suffix+".apk")
807 v4SignatureFile = android.PathForModuleOut(ctx, a.installApkName+"_"+split.suffix+".apk.idsig")
810 a.extraOutputFiles = append(a.extraOutputFiles, packageFile)
812 a.extraOutputFiles = append(a.extraOutputFiles, v4SignatureFile)
818 BuildBundleModule(ctx, bundleFile, a.exportPackage, jniJarFile, dexJarFile)
819 a.bundleFile = bundleFile
822 if (Bool(a.Module.properties.Installable) || ctx.Host()) && a.IsForPlatform() {
823 ctx.InstallFile(a.installDir, a.outputFile.Base(), a.outputFile)
824 for _, extra := range a.extraOutputFiles {
825 ctx.InstallFile(a.installDir, extra.Base(), extra)
829 a.buildAppDependencyInfo(ctx)
905 func (a *AndroidApp) walkPayloadDeps(ctx android.ModuleContext,
909 isExternal := !a.DepIsInSameApex(ctx, child)
917 func (a *AndroidApp) buildAppDependencyInfo(ctx android.ModuleContext) {
923 …a.walkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModul…
945 a.ApexBundleDepsInfo.BuildDepsInfoLists(ctx, a.MinSdkVersion(), depsInfo)
948 func (a *AndroidApp) Updatable() bool {
949 return Bool(a.appProperties.Updatable) || a.ApexModuleBase.Updatable()
952 func (a *AndroidApp) getCertString(ctx android.BaseModuleContext) string {
957 return String(a.overridableAppProperties.Certificate)
960 func (a *AndroidApp) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
964 return a.Library.DepIsInSameApex(ctx, dep)
968 func (a *AndroidApp) OutputFiles(tag string) (android.Paths, error) {
971 return []android.Path{a.aaptSrcJar}, nil
973 return []android.Path{a.exportPackage}, nil
975 return a.Library.OutputFiles(tag)
978 func (a *AndroidApp) Privileged() bool {
979 return Bool(a.appProperties.Privileged)
982 func (a *AndroidApp) IsNativeCoverageNeeded(ctx android.BaseModuleContext) bool {
986 func (a *AndroidApp) PreventInstall() {
987 a.appProperties.PreventInstall = true
990 func (a *AndroidApp) HideFromMake() {
991 a.appProperties.HideFromMake = true
994 func (a *AndroidApp) MarkAsCoverageVariant(coverage bool) {
995 a.appProperties.IsCoverageVariant = coverage
1047 func (a *AndroidTest) InstallInTestcases() bool {
1051 func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
1053 if a.appTestProperties.Instrumentation_target_package != nil {
1054 a.additionalAaptFlags = append(a.additionalAaptFlags,
1055 "--rename-instrumentation-target-package "+*a.appTestProperties.Instrumentation_target_package)
1056 } else if a.appTestProperties.Instrumentation_for != nil {
1058 …manifestPackageName, overridden := ctx.DeviceConfig().OverrideManifestPackageNameFor(*a.appTestPro…
1060 …a.additionalAaptFlags = append(a.additionalAaptFlags, "--rename-instrumentation-target-package "+m…
1063 a.generateAndroidBuildActions(ctx)
1065 for _, module := range a.testProperties.Test_mainline_modules {
1069 testConfig := tradefed.AutoGenInstrumentationTestConfig(ctx, a.testProperties.Test_config,
1070 …a.testProperties.Test_config_template, a.manifestPath, a.testProperties.Test_suites, a.testPropert…
1071 a.testConfig = a.FixTestConfig(ctx, testConfig)
1072 a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data)
1075 func (a *AndroidTest) FixTestConfig(ctx android.ModuleContext, testConfig android.Path) android.Pat…
1085 if ctx.ModuleName() != a.installApkName {
1087 command.FlagWithArg("--test-file-name ", a.installApkName+".apk")
1090 if a.overridableAppProperties.Package_name != nil {
1092 command.FlagWithInput("--manifest ", a.manifestPath).
1093 FlagWithArg("--package-name ", *a.overridableAppProperties.Package_name)
1103 func (a *AndroidTest) DepsMutator(ctx android.BottomUpMutatorContext) {
1104 a.AndroidApp.DepsMutator(ctx)
1107 func (a *AndroidTest) OverridablePropertiesDepsMutator(ctx android.BottomUpMutatorContext) {
1108 a.AndroidApp.OverridablePropertiesDepsMutator(ctx)
1109 if a.appTestProperties.Instrumentation_for != nil {
1113 …ctx.AddVariationDependencies(nil, instrumentationForTag, String(a.appTestProperties.Instrumentatio…
1163 func (a *AndroidTestHelperApp) InstallInTestcases() bool {
1343 func (a *AndroidAppImport) IsInstallable() bool {
1348 func (a *AndroidAppImport) processVariants(ctx android.LoadHookContext) {
1351 dpiProps := reflect.ValueOf(a.dpiVariants).Elem().FieldByName("Dpi_variants")
1356 MergePropertiesFromVariant(ctx, &a.properties, dpiProps, config.ProductAAPTPrebuiltDPI()[i])
1359 MergePropertiesFromVariant(ctx, &a.properties, dpiProps, config.ProductAAPTPreferredConfig())
1362 archProps := reflect.ValueOf(a.archVariants).Elem().FieldByName("Arch")
1364 MergePropertiesFromVariant(ctx, &a.properties, archProps, archType.Name)
1384 func (a *AndroidAppImport) DepsMutator(ctx android.BottomUpMutatorContext) {
1385 cert := android.SrcIsModule(String(a.properties.Certificate))
1390 a.usesLibrary.deps(ctx, true)
1393 func (a *AndroidAppImport) uncompressEmbeddedJniLibs(
1397 if ctx.InstallInTestcases() && (Bool(a.properties.Presigned) || a.preprocessed) {
1417 func (a *AndroidAppImport) shouldUncompressDex(ctx android.ModuleContext) bool {
1418 if ctx.Config().UnbundledBuild() || a.preprocessed {
1423 if ctx.Config().UncompressPrivAppDex() && a.Privileged() {
1427 return shouldUncompressDex(ctx, &a.dexpreopter)
1430 func (a *AndroidAppImport) uncompressDex(
1443 func (a *AndroidAppImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
1444 a.generateAndroidBuildActions(ctx)
1447 func (a *AndroidAppImport) InstallApkName() string {
1448 return a.BaseModuleName()
1451 func (a *AndroidAppImport) generateAndroidBuildActions(ctx android.ModuleContext) {
1453 if String(a.properties.Certificate) != "" {
1456 if Bool(a.properties.Presigned) {
1459 if Bool(a.properties.Default_dev_cert) {
1466 _, certificates := collectAppDeps(ctx, a, false, false)
1471 srcApk := a.prebuilt.SingleSourcePath(ctx)
1473 if a.usesLibrary.enforceUsesLibraries() {
1474 srcApk = a.usesLibrary.verifyUsesLibrariesAPK(ctx, srcApk)
1481 a.uncompressEmbeddedJniLibs(ctx, srcApk, jnisUncompressed.OutputPath)
1484 if Bool(a.properties.Privileged) {
1485 installDir = android.PathForModuleInstall(ctx, "priv-app", a.BaseModuleName())
1487 …installDir = android.PathForModuleInstall(ctx, a.BaseModuleName(), ctx.DeviceConfig().DeviceArch())
1489 installDir = android.PathForModuleInstall(ctx, "app", a.BaseModuleName())
1492 a.dexpreopter.installPath = installDir.Join(ctx, a.BaseModuleName()+".apk")
1493 a.dexpreopter.isPresignedPrebuilt = Bool(a.properties.Presigned)
1494 a.dexpreopter.uncompressedDex = a.shouldUncompressDex(ctx)
1496 a.dexpreopter.enforceUsesLibs = a.usesLibrary.enforceUsesLibraries()
1497 a.dexpreopter.usesLibs = a.usesLibrary.usesLibraryProperties.Uses_libs
1498 a.dexpreopter.optionalUsesLibs = a.usesLibrary.presentOptionalUsesLibs(ctx)
1499 a.dexpreopter.libraryPaths = a.usesLibrary.usesLibraryPaths(ctx)
1501 dexOutput := a.dexpreopter.dexpreopt(ctx, jnisUncompressed)
1502 if a.dexpreopter.uncompressedDex {
1504 a.uncompressDex(ctx, dexOutput, dexUncompressed.OutputPath)
1508 apkFilename := proptools.StringDefault(a.properties.Filename, a.BaseModuleName()+".apk")
1513 if a.preprocessed {
1514 a.outputFile = srcApk
1515 a.certificate = PresignedCertificate
1516 } else if !Bool(a.properties.Presigned) {
1519 certificates = processMainCert(a.ModuleBase, String(a.properties.Certificate), certificates, ctx)
1523 a.certificate = certificates[0]
1526 if lineage := String(a.properties.Lineage); lineage != "" {
1530 a.outputFile = signed
1534 a.outputFile = alignedApk
1535 a.certificate = PresignedCertificate
1540 a.installPath = ctx.InstallFile(installDir, apkFilename, a.outputFile)
1545 func (a *AndroidAppImport) Prebuilt() *android.Prebuilt {
1546 return &a.prebuilt
1549 func (a *AndroidAppImport) Name() string {
1550 return a.prebuilt.Name(a.ModuleBase.Name())
1553 func (a *AndroidAppImport) OutputFile() android.Path {
1554 return a.outputFile
1557 func (a *AndroidAppImport) JacocoReportClassesFile() android.Path {
1561 func (a *AndroidAppImport) Certificate() Certificate {
1562 return a.certificate
1579 func (a *AndroidAppImport) populateAllVariantStructs() {
1580 a.dpiVariants = reflect.New(dpiVariantGroupType).Interface()
1581 a.AddProperties(a.dpiVariants)
1583 a.archVariants = reflect.New(archVariantGroupType).Interface()
1584 a.AddProperties(a.archVariants)
1587 func (a *AndroidAppImport) Privileged() bool {
1588 return Bool(a.properties.Privileged)
1591 func (a *AndroidAppImport) sdkVersion() sdkSpec {
1595 func (a *AndroidAppImport) minSdkVersion() sdkSpec {
1667 func (a *AndroidTestImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
1668 a.preprocessed = Bool(a.testImportProperties.Preprocessed)
1670 a.generateAndroidBuildActions(ctx)
1672 a.data = android.PathsForModuleSrc(ctx, a.testProperties.Data)
1675 func (a *AndroidTestImport) InstallInTestcases() bool {