1*333d2b36SAndroid Build Coastguard Worker// Copyright 2015 Google Inc. All rights reserved. 2*333d2b36SAndroid Build Coastguard Worker// 3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*333d2b36SAndroid Build Coastguard Worker// 7*333d2b36SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*333d2b36SAndroid Build Coastguard Worker// 9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*333d2b36SAndroid Build Coastguard Worker// limitations under the License. 14*333d2b36SAndroid Build Coastguard Worker 15*333d2b36SAndroid Build Coastguard Workerpackage java 16*333d2b36SAndroid Build Coastguard Worker 17*333d2b36SAndroid Build Coastguard Workerimport ( 18*333d2b36SAndroid Build Coastguard Worker "fmt" 19*333d2b36SAndroid Build Coastguard Worker "io" 20*333d2b36SAndroid Build Coastguard Worker 21*333d2b36SAndroid Build Coastguard Worker "android/soong/android" 22*333d2b36SAndroid Build Coastguard Worker 23*333d2b36SAndroid Build Coastguard Worker "github.com/google/blueprint/proptools" 24*333d2b36SAndroid Build Coastguard Worker) 25*333d2b36SAndroid Build Coastguard Worker 26*333d2b36SAndroid Build Coastguard Workerfunc (library *Library) AndroidMkEntriesHostDex() android.AndroidMkEntries { 27*333d2b36SAndroid Build Coastguard Worker hostDexNeeded := Bool(library.deviceProperties.Hostdex) && !library.Host() 28*333d2b36SAndroid Build Coastguard Worker if library.hideApexVariantFromMake { 29*333d2b36SAndroid Build Coastguard Worker hostDexNeeded = false 30*333d2b36SAndroid Build Coastguard Worker } 31*333d2b36SAndroid Build Coastguard Worker 32*333d2b36SAndroid Build Coastguard Worker if hostDexNeeded { 33*333d2b36SAndroid Build Coastguard Worker var output android.Path 34*333d2b36SAndroid Build Coastguard Worker if library.dexJarFile.IsSet() { 35*333d2b36SAndroid Build Coastguard Worker output = library.dexJarFile.Path() 36*333d2b36SAndroid Build Coastguard Worker } else { 37*333d2b36SAndroid Build Coastguard Worker output = library.implementationAndResourcesJar 38*333d2b36SAndroid Build Coastguard Worker } 39*333d2b36SAndroid Build Coastguard Worker return android.AndroidMkEntries{ 40*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 41*333d2b36SAndroid Build Coastguard Worker SubName: "-hostdex", 42*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(output), 43*333d2b36SAndroid Build Coastguard Worker Required: library.deviceProperties.Target.Hostdex.Required, 44*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 45*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 46*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 47*333d2b36SAndroid Build Coastguard Worker entries.SetBool("LOCAL_IS_HOST_MODULE", true) 48*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_PREBUILT_MODULE_FILE", output) 49*333d2b36SAndroid Build Coastguard Worker if library.dexJarFile.IsSet() { 50*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", library.dexJarFile.Path()) 51*333d2b36SAndroid Build Coastguard Worker } 52*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_INSTALLED_MODULE", library.hostdexInstallFile) 53*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", library.headerJarFile) 54*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", library.implementationAndResourcesJar) 55*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_STEM", library.Stem()+"-hostdex") 56*333d2b36SAndroid Build Coastguard Worker }, 57*333d2b36SAndroid Build Coastguard Worker }, 58*333d2b36SAndroid Build Coastguard Worker } 59*333d2b36SAndroid Build Coastguard Worker } 60*333d2b36SAndroid Build Coastguard Worker return android.AndroidMkEntries{Disabled: true} 61*333d2b36SAndroid Build Coastguard Worker} 62*333d2b36SAndroid Build Coastguard Worker 63*333d2b36SAndroid Build Coastguard Workerfunc (library *Library) AndroidMkEntries() []android.AndroidMkEntries { 64*333d2b36SAndroid Build Coastguard Worker var entriesList []android.AndroidMkEntries 65*333d2b36SAndroid Build Coastguard Worker 66*333d2b36SAndroid Build Coastguard Worker if library.Os() == android.Windows { 67*333d2b36SAndroid Build Coastguard Worker // Make does not support Windows Java modules 68*333d2b36SAndroid Build Coastguard Worker return nil 69*333d2b36SAndroid Build Coastguard Worker } 70*333d2b36SAndroid Build Coastguard Worker 71*333d2b36SAndroid Build Coastguard Worker if library.hideApexVariantFromMake { 72*333d2b36SAndroid Build Coastguard Worker // For a java library built for an APEX, we don't need a Make module for itself. Otherwise, it 73*333d2b36SAndroid Build Coastguard Worker // will conflict with the platform variant because they have the same module name in the 74*333d2b36SAndroid Build Coastguard Worker // makefile. However, we need to add its dexpreopt outputs as sub-modules, if it is preopted. 75*333d2b36SAndroid Build Coastguard Worker dexpreoptEntries := library.dexpreopter.AndroidMkEntriesForApex() 76*333d2b36SAndroid Build Coastguard Worker if len(dexpreoptEntries) > 0 { 77*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, dexpreoptEntries...) 78*333d2b36SAndroid Build Coastguard Worker } 79*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, android.AndroidMkEntries{Disabled: true}) 80*333d2b36SAndroid Build Coastguard Worker } else if !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) { 81*333d2b36SAndroid Build Coastguard Worker // Platform variant. If not available for the platform, we don't need Make module. 82*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, android.AndroidMkEntries{Disabled: true}) 83*333d2b36SAndroid Build Coastguard Worker } else if proptools.Bool(library.properties.Headers_only) { 84*333d2b36SAndroid Build Coastguard Worker // If generating headers only then don't expose to Make. 85*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, android.AndroidMkEntries{Disabled: true}) 86*333d2b36SAndroid Build Coastguard Worker } else { 87*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, android.AndroidMkEntries{ 88*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 89*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(library.outputFile), 90*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 91*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 92*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 93*333d2b36SAndroid Build Coastguard Worker if len(library.logtagsSrcs) > 0 { 94*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_SOONG_LOGTAGS_FILES", library.logtagsSrcs.Strings()...) 95*333d2b36SAndroid Build Coastguard Worker } 96*333d2b36SAndroid Build Coastguard Worker 97*333d2b36SAndroid Build Coastguard Worker if library.installFile == nil { 98*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) 99*333d2b36SAndroid Build Coastguard Worker } 100*333d2b36SAndroid Build Coastguard Worker if library.dexJarFile.IsSet() { 101*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", library.dexJarFile.Path()) 102*333d2b36SAndroid Build Coastguard Worker } 103*333d2b36SAndroid Build Coastguard Worker if len(library.dexpreopter.builtInstalled) > 0 { 104*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", library.dexpreopter.builtInstalled) 105*333d2b36SAndroid Build Coastguard Worker } 106*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SDK_VERSION", library.sdkVersion.String()) 107*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", library.implementationAndResourcesJar) 108*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", library.headerJarFile) 109*333d2b36SAndroid Build Coastguard Worker 110*333d2b36SAndroid Build Coastguard Worker if library.jacocoReportClassesFile != nil { 111*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR", library.jacocoReportClassesFile) 112*333d2b36SAndroid Build Coastguard Worker } 113*333d2b36SAndroid Build Coastguard Worker 114*333d2b36SAndroid Build Coastguard Worker requiredUsesLibs, optionalUsesLibs := library.classLoaderContexts.UsesLibs() 115*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_EXPORT_SDK_LIBRARIES", append(requiredUsesLibs, optionalUsesLibs...)...) 116*333d2b36SAndroid Build Coastguard Worker 117*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPath("LOCAL_SOONG_PROGUARD_DICT", library.dexer.proguardDictionary) 118*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPath("LOCAL_SOONG_PROGUARD_USAGE_ZIP", library.dexer.proguardUsageZip) 119*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_STEM", library.Stem()) 120*333d2b36SAndroid Build Coastguard Worker 121*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPaths("LOCAL_SOONG_LINT_REPORTS", library.linter.reports) 122*333d2b36SAndroid Build Coastguard Worker 123*333d2b36SAndroid Build Coastguard Worker if library.dexpreopter.configPath != nil { 124*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEXPREOPT_CONFIG", library.dexpreopter.configPath) 125*333d2b36SAndroid Build Coastguard Worker } 126*333d2b36SAndroid Build Coastguard Worker }, 127*333d2b36SAndroid Build Coastguard Worker }, 128*333d2b36SAndroid Build Coastguard Worker }) 129*333d2b36SAndroid Build Coastguard Worker } 130*333d2b36SAndroid Build Coastguard Worker 131*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, library.AndroidMkEntriesHostDex()) 132*333d2b36SAndroid Build Coastguard Worker 133*333d2b36SAndroid Build Coastguard Worker return entriesList 134*333d2b36SAndroid Build Coastguard Worker} 135*333d2b36SAndroid Build Coastguard Worker 136*333d2b36SAndroid Build Coastguard Workerfunc (j *JavaFuzzTest) AndroidMkEntries() []android.AndroidMkEntries { 137*333d2b36SAndroid Build Coastguard Worker entriesList := j.Library.AndroidMkEntries() 138*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 139*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 140*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_COMPATIBILITY_SUITE", "null-suite") 141*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(android.Paths{j.implementationJarFile}, entries) 142*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(j.jniFilePaths, entries) 143*333d2b36SAndroid Build Coastguard Worker if j.fuzzPackagedModule.Corpus != nil { 144*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(j.fuzzPackagedModule.Corpus, entries) 145*333d2b36SAndroid Build Coastguard Worker } 146*333d2b36SAndroid Build Coastguard Worker if j.fuzzPackagedModule.Dictionary != nil { 147*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(android.Paths{j.fuzzPackagedModule.Dictionary}, entries) 148*333d2b36SAndroid Build Coastguard Worker } 149*333d2b36SAndroid Build Coastguard Worker }) 150*333d2b36SAndroid Build Coastguard Worker return entriesList 151*333d2b36SAndroid Build Coastguard Worker} 152*333d2b36SAndroid Build Coastguard Worker 153*333d2b36SAndroid Build Coastguard Worker// Called for modules that are a component of a test suite. 154*333d2b36SAndroid Build Coastguard Workerfunc testSuiteComponent(entries *android.AndroidMkEntries, test_suites []string, perTestcaseDirectory bool) { 155*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_TAGS", "tests") 156*333d2b36SAndroid Build Coastguard Worker if len(test_suites) > 0 { 157*333d2b36SAndroid Build Coastguard Worker entries.AddCompatibilityTestSuites(test_suites...) 158*333d2b36SAndroid Build Coastguard Worker } else { 159*333d2b36SAndroid Build Coastguard Worker entries.AddCompatibilityTestSuites("null-suite") 160*333d2b36SAndroid Build Coastguard Worker } 161*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_COMPATIBILITY_PER_TESTCASE_DIRECTORY", perTestcaseDirectory) 162*333d2b36SAndroid Build Coastguard Worker} 163*333d2b36SAndroid Build Coastguard Worker 164*333d2b36SAndroid Build Coastguard Workerfunc (j *Test) AndroidMkEntries() []android.AndroidMkEntries { 165*333d2b36SAndroid Build Coastguard Worker entriesList := j.Library.AndroidMkEntries() 166*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 167*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 168*333d2b36SAndroid Build Coastguard Worker testSuiteComponent(entries, j.testProperties.Test_suites, Bool(j.testProperties.Per_testcase_directory)) 169*333d2b36SAndroid Build Coastguard Worker if j.testConfig != nil { 170*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_FULL_TEST_CONFIG", j.testConfig) 171*333d2b36SAndroid Build Coastguard Worker } 172*333d2b36SAndroid Build Coastguard Worker androidMkWriteExtraTestConfigs(j.extraTestConfigs, entries) 173*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(j.data, entries) 174*333d2b36SAndroid Build Coastguard Worker if !BoolDefault(j.testProperties.Auto_gen_config, true) { 175*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true") 176*333d2b36SAndroid Build Coastguard Worker } 177*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", j.testProperties.Test_mainline_modules...) 178*333d2b36SAndroid Build Coastguard Worker 179*333d2b36SAndroid Build Coastguard Worker j.testProperties.Test_options.CommonTestOptions.SetAndroidMkEntries(entries) 180*333d2b36SAndroid Build Coastguard Worker }) 181*333d2b36SAndroid Build Coastguard Worker 182*333d2b36SAndroid Build Coastguard Worker return entriesList 183*333d2b36SAndroid Build Coastguard Worker} 184*333d2b36SAndroid Build Coastguard Worker 185*333d2b36SAndroid Build Coastguard Workerfunc androidMkWriteExtraTestConfigs(extraTestConfigs android.Paths, entries *android.AndroidMkEntries) { 186*333d2b36SAndroid Build Coastguard Worker if len(extraTestConfigs) > 0 { 187*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_EXTRA_FULL_TEST_CONFIGS", extraTestConfigs.Strings()...) 188*333d2b36SAndroid Build Coastguard Worker } 189*333d2b36SAndroid Build Coastguard Worker} 190*333d2b36SAndroid Build Coastguard Worker 191*333d2b36SAndroid Build Coastguard Workerfunc (j *TestHelperLibrary) AndroidMkEntries() []android.AndroidMkEntries { 192*333d2b36SAndroid Build Coastguard Worker entriesList := j.Library.AndroidMkEntries() 193*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 194*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 195*333d2b36SAndroid Build Coastguard Worker testSuiteComponent(entries, j.testHelperLibraryProperties.Test_suites, Bool(j.testHelperLibraryProperties.Per_testcase_directory)) 196*333d2b36SAndroid Build Coastguard Worker }) 197*333d2b36SAndroid Build Coastguard Worker 198*333d2b36SAndroid Build Coastguard Worker return entriesList 199*333d2b36SAndroid Build Coastguard Worker} 200*333d2b36SAndroid Build Coastguard Worker 201*333d2b36SAndroid Build Coastguard Workerfunc (prebuilt *Import) AndroidMkEntries() []android.AndroidMkEntries { 202*333d2b36SAndroid Build Coastguard Worker if prebuilt.hideApexVariantFromMake { 203*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{} 204*333d2b36SAndroid Build Coastguard Worker } 205*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 206*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 207*333d2b36SAndroid Build Coastguard Worker OverrideName: prebuilt.BaseModuleName(), 208*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(prebuilt.combinedImplementationFile), 209*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 210*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 211*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 212*333d2b36SAndroid Build Coastguard Worker entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", !Bool(prebuilt.properties.Installable)) 213*333d2b36SAndroid Build Coastguard Worker if prebuilt.dexJarFile.IsSet() { 214*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", prebuilt.dexJarFile.Path()) 215*333d2b36SAndroid Build Coastguard Worker } 216*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.combinedHeaderFile) 217*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.combinedImplementationFile) 218*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SDK_VERSION", prebuilt.sdkVersion.String()) 219*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_STEM", prebuilt.Stem()) 220*333d2b36SAndroid Build Coastguard Worker // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts 221*333d2b36SAndroid Build Coastguard Worker }, 222*333d2b36SAndroid Build Coastguard Worker }, 223*333d2b36SAndroid Build Coastguard Worker }} 224*333d2b36SAndroid Build Coastguard Worker} 225*333d2b36SAndroid Build Coastguard Worker 226*333d2b36SAndroid Build Coastguard Workerfunc (prebuilt *DexImport) AndroidMkEntries() []android.AndroidMkEntries { 227*333d2b36SAndroid Build Coastguard Worker if prebuilt.hideApexVariantFromMake { 228*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 229*333d2b36SAndroid Build Coastguard Worker Disabled: true, 230*333d2b36SAndroid Build Coastguard Worker }} 231*333d2b36SAndroid Build Coastguard Worker } 232*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 233*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 234*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(prebuilt.dexJarFile.Path()), 235*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 236*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 237*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 238*333d2b36SAndroid Build Coastguard Worker if prebuilt.dexJarFile.IsSet() { 239*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", prebuilt.dexJarFile.Path()) 240*333d2b36SAndroid Build Coastguard Worker } 241*333d2b36SAndroid Build Coastguard Worker if len(prebuilt.dexpreopter.builtInstalled) > 0 { 242*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", prebuilt.dexpreopter.builtInstalled) 243*333d2b36SAndroid Build Coastguard Worker } 244*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_STEM", prebuilt.Stem()) 245*333d2b36SAndroid Build Coastguard Worker // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts 246*333d2b36SAndroid Build Coastguard Worker }, 247*333d2b36SAndroid Build Coastguard Worker }, 248*333d2b36SAndroid Build Coastguard Worker }} 249*333d2b36SAndroid Build Coastguard Worker} 250*333d2b36SAndroid Build Coastguard Worker 251*333d2b36SAndroid Build Coastguard Workerfunc (prebuilt *AARImport) AndroidMkEntries() []android.AndroidMkEntries { 252*333d2b36SAndroid Build Coastguard Worker if prebuilt.hideApexVariantFromMake { 253*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{{ 254*333d2b36SAndroid Build Coastguard Worker Disabled: true, 255*333d2b36SAndroid Build Coastguard Worker }} 256*333d2b36SAndroid Build Coastguard Worker } 257*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 258*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 259*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(prebuilt.implementationJarFile), 260*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 261*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 262*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 263*333d2b36SAndroid Build Coastguard Worker entries.SetBool("LOCAL_UNINSTALLABLE_MODULE", true) 264*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.headerJarFile) 265*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.implementationJarFile) 266*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", prebuilt.exportPackage) 267*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackagesFile) 268*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", prebuilt.proguardFlags) 269*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", prebuilt.extraAaptPackagesFile) 270*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_FULL_MANIFEST_FILE", prebuilt.manifest) 271*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SDK_VERSION", prebuilt.sdkVersion.String()) 272*333d2b36SAndroid Build Coastguard Worker // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts 273*333d2b36SAndroid Build Coastguard Worker }, 274*333d2b36SAndroid Build Coastguard Worker }, 275*333d2b36SAndroid Build Coastguard Worker }} 276*333d2b36SAndroid Build Coastguard Worker} 277*333d2b36SAndroid Build Coastguard Worker 278*333d2b36SAndroid Build Coastguard Workerfunc (binary *Binary) AndroidMkEntries() []android.AndroidMkEntries { 279*333d2b36SAndroid Build Coastguard Worker if binary.Os() == android.Windows { 280*333d2b36SAndroid Build Coastguard Worker // Make does not support Windows Java modules 281*333d2b36SAndroid Build Coastguard Worker return nil 282*333d2b36SAndroid Build Coastguard Worker } 283*333d2b36SAndroid Build Coastguard Worker 284*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{{ 285*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 286*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(binary.outputFile), 287*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 288*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 289*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 290*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", binary.headerJarFile) 291*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", binary.implementationAndResourcesJar) 292*333d2b36SAndroid Build Coastguard Worker if binary.dexJarFile.IsSet() { 293*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", binary.dexJarFile.Path()) 294*333d2b36SAndroid Build Coastguard Worker } 295*333d2b36SAndroid Build Coastguard Worker if len(binary.dexpreopter.builtInstalled) > 0 { 296*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", binary.dexpreopter.builtInstalled) 297*333d2b36SAndroid Build Coastguard Worker } 298*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_REQUIRED_MODULES", binary.androidMkNamesOfJniLibs...) 299*333d2b36SAndroid Build Coastguard Worker }, 300*333d2b36SAndroid Build Coastguard Worker }, 301*333d2b36SAndroid Build Coastguard Worker }} 302*333d2b36SAndroid Build Coastguard Worker} 303*333d2b36SAndroid Build Coastguard Worker 304*333d2b36SAndroid Build Coastguard Workerfunc (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries { 305*333d2b36SAndroid Build Coastguard Worker if app.hideApexVariantFromMake || app.IsHideFromMake() { 306*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 307*333d2b36SAndroid Build Coastguard Worker Disabled: true, 308*333d2b36SAndroid Build Coastguard Worker }} 309*333d2b36SAndroid Build Coastguard Worker } 310*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 311*333d2b36SAndroid Build Coastguard Worker Class: "APPS", 312*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(app.outputFile), 313*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk", 314*333d2b36SAndroid Build Coastguard Worker Required: app.requiredModuleNames, 315*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 316*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 317*333d2b36SAndroid Build Coastguard Worker // App module names can be overridden. 318*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE", app.installApkName) 319*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", app.appProperties.PreventInstall) 320*333d2b36SAndroid Build Coastguard Worker if app.headerJarFile != nil { 321*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", app.headerJarFile) 322*333d2b36SAndroid Build Coastguard Worker } 323*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", app.exportPackage) 324*333d2b36SAndroid Build Coastguard Worker if app.dexJarFile.IsSet() { 325*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEX_JAR", app.dexJarFile.Path()) 326*333d2b36SAndroid Build Coastguard Worker } 327*333d2b36SAndroid Build Coastguard Worker if app.implementationAndResourcesJar != nil { 328*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", app.implementationAndResourcesJar) 329*333d2b36SAndroid Build Coastguard Worker } 330*333d2b36SAndroid Build Coastguard Worker if app.headerJarFile != nil { 331*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", app.headerJarFile) 332*333d2b36SAndroid Build Coastguard Worker } 333*333d2b36SAndroid Build Coastguard Worker if app.bundleFile != nil { 334*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_BUNDLE", app.bundleFile) 335*333d2b36SAndroid Build Coastguard Worker } 336*333d2b36SAndroid Build Coastguard Worker if app.jacocoReportClassesFile != nil { 337*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR", app.jacocoReportClassesFile) 338*333d2b36SAndroid Build Coastguard Worker } 339*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPath("LOCAL_SOONG_PROGUARD_DICT", app.dexer.proguardDictionary) 340*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPath("LOCAL_SOONG_PROGUARD_USAGE_ZIP", app.dexer.proguardUsageZip) 341*333d2b36SAndroid Build Coastguard Worker 342*333d2b36SAndroid Build Coastguard Worker if app.Name() == "framework-res" { 343*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_PATH", "$(TARGET_OUT_JAVA_LIBRARIES)") 344*333d2b36SAndroid Build Coastguard Worker // Make base_rules.mk not put framework-res in a subdirectory called 345*333d2b36SAndroid Build Coastguard Worker // framework_res. 346*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_NO_STANDARD_LIBRARIES", true) 347*333d2b36SAndroid Build Coastguard Worker } 348*333d2b36SAndroid Build Coastguard Worker 349*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_EXPORT_PACKAGE_RESOURCES", Bool(app.appProperties.Export_package_resources)) 350*333d2b36SAndroid Build Coastguard Worker 351*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_FULL_MANIFEST_FILE", app.manifestPath) 352*333d2b36SAndroid Build Coastguard Worker 353*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_PRIVILEGED_MODULE", app.Privileged()) 354*333d2b36SAndroid Build Coastguard Worker 355*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_CERTIFICATE", app.certificate.AndroidMkString()) 356*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", app.getOverriddenPackages()...) 357*333d2b36SAndroid Build Coastguard Worker 358*333d2b36SAndroid Build Coastguard Worker if app.embeddedJniLibs { 359*333d2b36SAndroid Build Coastguard Worker jniSymbols := app.JNISymbolsInstalls(app.installPathForJNISymbols.String()) 360*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_JNI_LIBS_SYMBOLS", jniSymbols.String()) 361*333d2b36SAndroid Build Coastguard Worker } else { 362*333d2b36SAndroid Build Coastguard Worker var names []string 363*333d2b36SAndroid Build Coastguard Worker for _, jniLib := range app.jniLibs { 364*333d2b36SAndroid Build Coastguard Worker names = append(names, jniLib.name+":"+jniLib.target.Arch.ArchType.Bitness()) 365*333d2b36SAndroid Build Coastguard Worker } 366*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_REQUIRED_MODULES", names...) 367*333d2b36SAndroid Build Coastguard Worker } 368*333d2b36SAndroid Build Coastguard Worker 369*333d2b36SAndroid Build Coastguard Worker if len(app.jniCoverageOutputs) > 0 { 370*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_PREBUILT_COVERAGE_ARCHIVE", app.jniCoverageOutputs.Strings()...) 371*333d2b36SAndroid Build Coastguard Worker } 372*333d2b36SAndroid Build Coastguard Worker if len(app.dexpreopter.builtInstalled) > 0 { 373*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", app.dexpreopter.builtInstalled) 374*333d2b36SAndroid Build Coastguard Worker } 375*333d2b36SAndroid Build Coastguard Worker if app.dexpreopter.configPath != nil { 376*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_DEXPREOPT_CONFIG", app.dexpreopter.configPath) 377*333d2b36SAndroid Build Coastguard Worker } 378*333d2b36SAndroid Build Coastguard Worker for _, extra := range app.extraOutputFiles { 379*333d2b36SAndroid Build Coastguard Worker install := app.onDeviceDir + "/" + extra.Base() 380*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_SOONG_BUILT_INSTALLED", extra.String()+":"+install) 381*333d2b36SAndroid Build Coastguard Worker } 382*333d2b36SAndroid Build Coastguard Worker 383*333d2b36SAndroid Build Coastguard Worker entries.SetOptionalPaths("LOCAL_SOONG_LINT_REPORTS", app.linter.reports) 384*333d2b36SAndroid Build Coastguard Worker 385*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_SOONG_LOGTAGS_FILES", app.logtagsSrcs.Strings()...) 386*333d2b36SAndroid Build Coastguard Worker }, 387*333d2b36SAndroid Build Coastguard Worker }, 388*333d2b36SAndroid Build Coastguard Worker ExtraFooters: []android.AndroidMkExtraFootersFunc{ 389*333d2b36SAndroid Build Coastguard Worker func(w io.Writer, name, prefix, moduleDir string) { 390*333d2b36SAndroid Build Coastguard Worker if app.javaApiUsedByOutputFile.String() != "" { 391*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, "$(call dist-for-goals,%s,%s:%s/$(notdir %s))\n", 392*333d2b36SAndroid Build Coastguard Worker app.installApkName, app.javaApiUsedByOutputFile.String(), "java_apis_used_by_apex", app.javaApiUsedByOutputFile.String()) 393*333d2b36SAndroid Build Coastguard Worker } 394*333d2b36SAndroid Build Coastguard Worker }, 395*333d2b36SAndroid Build Coastguard Worker }}, 396*333d2b36SAndroid Build Coastguard Worker } 397*333d2b36SAndroid Build Coastguard Worker} 398*333d2b36SAndroid Build Coastguard Worker 399*333d2b36SAndroid Build Coastguard Workerfunc (a *AutogenRuntimeResourceOverlay) AndroidMkEntries() []android.AndroidMkEntries { 400*333d2b36SAndroid Build Coastguard Worker if a.IsHideFromMake() || a.outputFile == nil { 401*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 402*333d2b36SAndroid Build Coastguard Worker Disabled: true, 403*333d2b36SAndroid Build Coastguard Worker }} 404*333d2b36SAndroid Build Coastguard Worker } 405*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 406*333d2b36SAndroid Build Coastguard Worker Class: "APPS", 407*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(a.outputFile), 408*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk", 409*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 410*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 411*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_CERTIFICATE", a.certificate.AndroidMkString()) 412*333d2b36SAndroid Build Coastguard Worker }, 413*333d2b36SAndroid Build Coastguard Worker }, 414*333d2b36SAndroid Build Coastguard Worker }} 415*333d2b36SAndroid Build Coastguard Worker} 416*333d2b36SAndroid Build Coastguard Worker 417*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidApp) getOverriddenPackages() []string { 418*333d2b36SAndroid Build Coastguard Worker var overridden []string 419*333d2b36SAndroid Build Coastguard Worker if len(a.overridableAppProperties.Overrides) > 0 { 420*333d2b36SAndroid Build Coastguard Worker overridden = append(overridden, a.overridableAppProperties.Overrides...) 421*333d2b36SAndroid Build Coastguard Worker } 422*333d2b36SAndroid Build Coastguard Worker return overridden 423*333d2b36SAndroid Build Coastguard Worker} 424*333d2b36SAndroid Build Coastguard Worker 425*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidTest) AndroidMkEntries() []android.AndroidMkEntries { 426*333d2b36SAndroid Build Coastguard Worker entriesList := a.AndroidApp.AndroidMkEntries() 427*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 428*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 429*333d2b36SAndroid Build Coastguard Worker testSuiteComponent(entries, a.testProperties.Test_suites, Bool(a.testProperties.Per_testcase_directory)) 430*333d2b36SAndroid Build Coastguard Worker if a.testConfig != nil { 431*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_FULL_TEST_CONFIG", a.testConfig) 432*333d2b36SAndroid Build Coastguard Worker } 433*333d2b36SAndroid Build Coastguard Worker androidMkWriteExtraTestConfigs(a.extraTestConfigs, entries) 434*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(a.data, entries) 435*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", a.testProperties.Test_mainline_modules...) 436*333d2b36SAndroid Build Coastguard Worker }) 437*333d2b36SAndroid Build Coastguard Worker 438*333d2b36SAndroid Build Coastguard Worker return entriesList 439*333d2b36SAndroid Build Coastguard Worker} 440*333d2b36SAndroid Build Coastguard Worker 441*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidTestHelperApp) AndroidMkEntries() []android.AndroidMkEntries { 442*333d2b36SAndroid Build Coastguard Worker entriesList := a.AndroidApp.AndroidMkEntries() 443*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 444*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 445*333d2b36SAndroid Build Coastguard Worker testSuiteComponent(entries, a.appTestHelperAppProperties.Test_suites, Bool(a.appTestHelperAppProperties.Per_testcase_directory)) 446*333d2b36SAndroid Build Coastguard Worker // introduce a flag variable to control the generation of the .config file 447*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_DISABLE_TEST_CONFIG", "true") 448*333d2b36SAndroid Build Coastguard Worker }) 449*333d2b36SAndroid Build Coastguard Worker 450*333d2b36SAndroid Build Coastguard Worker return entriesList 451*333d2b36SAndroid Build Coastguard Worker} 452*333d2b36SAndroid Build Coastguard Worker 453*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidLibrary) AndroidMkEntries() []android.AndroidMkEntries { 454*333d2b36SAndroid Build Coastguard Worker if a.hideApexVariantFromMake { 455*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{{ 456*333d2b36SAndroid Build Coastguard Worker Disabled: true, 457*333d2b36SAndroid Build Coastguard Worker }} 458*333d2b36SAndroid Build Coastguard Worker } 459*333d2b36SAndroid Build Coastguard Worker entriesList := a.Library.AndroidMkEntries() 460*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 461*333d2b36SAndroid Build Coastguard Worker 462*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 463*333d2b36SAndroid Build Coastguard Worker if a.aarFile != nil { 464*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_AAR", a.aarFile) 465*333d2b36SAndroid Build Coastguard Worker } 466*333d2b36SAndroid Build Coastguard Worker 467*333d2b36SAndroid Build Coastguard Worker if a.Name() == "framework-res" { 468*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_MODULE_PATH", "$(TARGET_OUT_JAVA_LIBRARIES)") 469*333d2b36SAndroid Build Coastguard Worker // Make base_rules.mk not put framework-res in a subdirectory called 470*333d2b36SAndroid Build Coastguard Worker // framework_res. 471*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_NO_STANDARD_LIBRARIES", true) 472*333d2b36SAndroid Build Coastguard Worker } 473*333d2b36SAndroid Build Coastguard Worker 474*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", a.exportPackage) 475*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", a.transitiveAaptResourcePackagesFile) 476*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", a.extraAaptPackagesFile) 477*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_FULL_MANIFEST_FILE", a.mergedManifestFile) 478*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", a.combinedExportedProguardFlagsFile) 479*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) 480*333d2b36SAndroid Build Coastguard Worker }) 481*333d2b36SAndroid Build Coastguard Worker 482*333d2b36SAndroid Build Coastguard Worker return entriesList 483*333d2b36SAndroid Build Coastguard Worker} 484*333d2b36SAndroid Build Coastguard Worker 485*333d2b36SAndroid Build Coastguard Workerfunc (jd *Javadoc) AndroidMkEntries() []android.AndroidMkEntries { 486*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 487*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 488*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(jd.stubsSrcJar), 489*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_droiddoc_prebuilt.mk", 490*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 491*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 492*333d2b36SAndroid Build Coastguard Worker if BoolDefault(jd.properties.Installable, true) { 493*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_DOC_ZIP", jd.docZip) 494*333d2b36SAndroid Build Coastguard Worker } 495*333d2b36SAndroid Build Coastguard Worker if jd.exportableStubsSrcJar != nil { 496*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_STUBS_SRCJAR", jd.exportableStubsSrcJar) 497*333d2b36SAndroid Build Coastguard Worker } 498*333d2b36SAndroid Build Coastguard Worker }, 499*333d2b36SAndroid Build Coastguard Worker }, 500*333d2b36SAndroid Build Coastguard Worker }} 501*333d2b36SAndroid Build Coastguard Worker} 502*333d2b36SAndroid Build Coastguard Worker 503*333d2b36SAndroid Build Coastguard Workerfunc (ddoc *Droiddoc) AndroidMkEntries() []android.AndroidMkEntries { 504*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 505*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 506*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(ddoc.Javadoc.docZip), 507*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_droiddoc_prebuilt.mk", 508*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 509*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 510*333d2b36SAndroid Build Coastguard Worker if ddoc.Javadoc.docZip != nil { 511*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_DOC_ZIP", ddoc.Javadoc.docZip) 512*333d2b36SAndroid Build Coastguard Worker } 513*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", !BoolDefault(ddoc.Javadoc.properties.Installable, true)) 514*333d2b36SAndroid Build Coastguard Worker }, 515*333d2b36SAndroid Build Coastguard Worker }, 516*333d2b36SAndroid Build Coastguard Worker }} 517*333d2b36SAndroid Build Coastguard Worker} 518*333d2b36SAndroid Build Coastguard Worker 519*333d2b36SAndroid Build Coastguard Workerfunc (dstubs *Droidstubs) AndroidMkEntries() []android.AndroidMkEntries { 520*333d2b36SAndroid Build Coastguard Worker // If the stubsSrcJar is not generated (because generate_stubs is false) then 521*333d2b36SAndroid Build Coastguard Worker // use the api file as the output file to ensure the relevant phony targets 522*333d2b36SAndroid Build Coastguard Worker // are created in make if only the api txt file is being generated. This is 523*333d2b36SAndroid Build Coastguard Worker // needed because an invalid output file would prevent the make entries from 524*333d2b36SAndroid Build Coastguard Worker // being written. 525*333d2b36SAndroid Build Coastguard Worker // 526*333d2b36SAndroid Build Coastguard Worker // Note that dstubs.apiFile can be also be nil if WITHOUT_CHECKS_API is true. 527*333d2b36SAndroid Build Coastguard Worker // TODO(b/146727827): Revert when we do not need to generate stubs and API separately. 528*333d2b36SAndroid Build Coastguard Worker 529*333d2b36SAndroid Build Coastguard Worker outputFile := android.OptionalPathForPath(dstubs.stubsSrcJar) 530*333d2b36SAndroid Build Coastguard Worker if !outputFile.Valid() { 531*333d2b36SAndroid Build Coastguard Worker outputFile = android.OptionalPathForPath(dstubs.apiFile) 532*333d2b36SAndroid Build Coastguard Worker } 533*333d2b36SAndroid Build Coastguard Worker if !outputFile.Valid() { 534*333d2b36SAndroid Build Coastguard Worker outputFile = android.OptionalPathForPath(dstubs.everythingArtifacts.apiVersionsXml) 535*333d2b36SAndroid Build Coastguard Worker } 536*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 537*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 538*333d2b36SAndroid Build Coastguard Worker OutputFile: outputFile, 539*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_droiddoc_prebuilt.mk", 540*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 541*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 542*333d2b36SAndroid Build Coastguard Worker if dstubs.Javadoc.exportableStubsSrcJar != nil { 543*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_STUBS_SRCJAR", dstubs.Javadoc.exportableStubsSrcJar) 544*333d2b36SAndroid Build Coastguard Worker } 545*333d2b36SAndroid Build Coastguard Worker if dstubs.everythingArtifacts.apiVersionsXml != nil { 546*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_API_VERSIONS_XML", dstubs.exportableArtifacts.apiVersionsXml) 547*333d2b36SAndroid Build Coastguard Worker } 548*333d2b36SAndroid Build Coastguard Worker if dstubs.everythingArtifacts.annotationsZip != nil { 549*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_ANNOTATIONS_ZIP", dstubs.exportableArtifacts.annotationsZip) 550*333d2b36SAndroid Build Coastguard Worker } 551*333d2b36SAndroid Build Coastguard Worker if dstubs.everythingArtifacts.metadataZip != nil { 552*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_DROIDDOC_METADATA_ZIP", dstubs.exportableArtifacts.metadataZip) 553*333d2b36SAndroid Build Coastguard Worker } 554*333d2b36SAndroid Build Coastguard Worker }, 555*333d2b36SAndroid Build Coastguard Worker }, 556*333d2b36SAndroid Build Coastguard Worker ExtraFooters: []android.AndroidMkExtraFootersFunc{ 557*333d2b36SAndroid Build Coastguard Worker func(w io.Writer, name, prefix, moduleDir string) { 558*333d2b36SAndroid Build Coastguard Worker if dstubs.apiFile != nil { 559*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, ".PHONY: %s %s.txt\n", dstubs.Name(), dstubs.Name()) 560*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, "%s %s.txt: %s\n", dstubs.Name(), dstubs.Name(), dstubs.apiFile) 561*333d2b36SAndroid Build Coastguard Worker } 562*333d2b36SAndroid Build Coastguard Worker if dstubs.removedApiFile != nil { 563*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, ".PHONY: %s %s.txt\n", dstubs.Name(), dstubs.Name()) 564*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, "%s %s.txt: %s\n", dstubs.Name(), dstubs.Name(), dstubs.removedApiFile) 565*333d2b36SAndroid Build Coastguard Worker } 566*333d2b36SAndroid Build Coastguard Worker if dstubs.checkCurrentApiTimestamp != nil { 567*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", dstubs.Name()+"-check-current-api") 568*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, dstubs.Name()+"-check-current-api:", 569*333d2b36SAndroid Build Coastguard Worker dstubs.checkCurrentApiTimestamp.String()) 570*333d2b36SAndroid Build Coastguard Worker 571*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: checkapi") 572*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "checkapi:", 573*333d2b36SAndroid Build Coastguard Worker dstubs.checkCurrentApiTimestamp.String()) 574*333d2b36SAndroid Build Coastguard Worker 575*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: droidcore") 576*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "droidcore: checkapi") 577*333d2b36SAndroid Build Coastguard Worker } 578*333d2b36SAndroid Build Coastguard Worker if dstubs.updateCurrentApiTimestamp != nil { 579*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", dstubs.Name()+"-update-current-api") 580*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, dstubs.Name()+"-update-current-api:", 581*333d2b36SAndroid Build Coastguard Worker dstubs.updateCurrentApiTimestamp.String()) 582*333d2b36SAndroid Build Coastguard Worker 583*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: update-api") 584*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "update-api:", 585*333d2b36SAndroid Build Coastguard Worker dstubs.updateCurrentApiTimestamp.String()) 586*333d2b36SAndroid Build Coastguard Worker } 587*333d2b36SAndroid Build Coastguard Worker if dstubs.checkLastReleasedApiTimestamp != nil { 588*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", dstubs.Name()+"-check-last-released-api") 589*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, dstubs.Name()+"-check-last-released-api:", 590*333d2b36SAndroid Build Coastguard Worker dstubs.checkLastReleasedApiTimestamp.String()) 591*333d2b36SAndroid Build Coastguard Worker 592*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: checkapi") 593*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "checkapi:", 594*333d2b36SAndroid Build Coastguard Worker dstubs.checkLastReleasedApiTimestamp.String()) 595*333d2b36SAndroid Build Coastguard Worker 596*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: droidcore") 597*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "droidcore: checkapi") 598*333d2b36SAndroid Build Coastguard Worker } 599*333d2b36SAndroid Build Coastguard Worker if dstubs.apiLintTimestamp != nil { 600*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", dstubs.Name()+"-api-lint") 601*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, dstubs.Name()+"-api-lint:", 602*333d2b36SAndroid Build Coastguard Worker dstubs.apiLintTimestamp.String()) 603*333d2b36SAndroid Build Coastguard Worker 604*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: checkapi") 605*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "checkapi:", 606*333d2b36SAndroid Build Coastguard Worker dstubs.Name()+"-api-lint") 607*333d2b36SAndroid Build Coastguard Worker 608*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY: droidcore") 609*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "droidcore: checkapi") 610*333d2b36SAndroid Build Coastguard Worker 611*333d2b36SAndroid Build Coastguard Worker if dstubs.apiLintReport != nil { 612*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, "$(call dist-for-goals,%s,%s:%s)\n", dstubs.Name()+"-api-lint", 613*333d2b36SAndroid Build Coastguard Worker dstubs.apiLintReport.String(), "apilint/"+dstubs.Name()+"-lint-report.txt") 614*333d2b36SAndroid Build Coastguard Worker fmt.Fprintf(w, "$(call declare-0p-target,%s)\n", dstubs.apiLintReport.String()) 615*333d2b36SAndroid Build Coastguard Worker } 616*333d2b36SAndroid Build Coastguard Worker } 617*333d2b36SAndroid Build Coastguard Worker if dstubs.checkNullabilityWarningsTimestamp != nil { 618*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", dstubs.Name()+"-check-nullability-warnings") 619*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, dstubs.Name()+"-check-nullability-warnings:", 620*333d2b36SAndroid Build Coastguard Worker dstubs.checkNullabilityWarningsTimestamp.String()) 621*333d2b36SAndroid Build Coastguard Worker 622*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, ".PHONY:", "droidcore") 623*333d2b36SAndroid Build Coastguard Worker fmt.Fprintln(w, "droidcore: ", dstubs.Name()+"-check-nullability-warnings") 624*333d2b36SAndroid Build Coastguard Worker } 625*333d2b36SAndroid Build Coastguard Worker }, 626*333d2b36SAndroid Build Coastguard Worker }, 627*333d2b36SAndroid Build Coastguard Worker }} 628*333d2b36SAndroid Build Coastguard Worker} 629*333d2b36SAndroid Build Coastguard Worker 630*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidAppImport) AndroidMkEntries() []android.AndroidMkEntries { 631*333d2b36SAndroid Build Coastguard Worker if a.hideApexVariantFromMake { 632*333d2b36SAndroid Build Coastguard Worker // The non-platform variant is placed inside APEX. No reason to 633*333d2b36SAndroid Build Coastguard Worker // make it available to Make. 634*333d2b36SAndroid Build Coastguard Worker return nil 635*333d2b36SAndroid Build Coastguard Worker } 636*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 637*333d2b36SAndroid Build Coastguard Worker Class: "APPS", 638*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(a.outputFile), 639*333d2b36SAndroid Build Coastguard Worker OverrideName: a.BaseModuleName(), // TODO (spandandas): Add a test 640*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk", 641*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 642*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 643*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_PRIVILEGED_MODULE", a.Privileged()) 644*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_CERTIFICATE", a.certificate.AndroidMkString()) 645*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", a.properties.Overrides...) 646*333d2b36SAndroid Build Coastguard Worker if len(a.dexpreopter.builtInstalled) > 0 { 647*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_SOONG_BUILT_INSTALLED", a.dexpreopter.builtInstalled) 648*333d2b36SAndroid Build Coastguard Worker } 649*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_INSTALLED_MODULE_STEM", a.installPath.Rel()) 650*333d2b36SAndroid Build Coastguard Worker if Bool(a.properties.Export_package_resources) { 651*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", a.outputFile) 652*333d2b36SAndroid Build Coastguard Worker } 653*333d2b36SAndroid Build Coastguard Worker // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts 654*333d2b36SAndroid Build Coastguard Worker }, 655*333d2b36SAndroid Build Coastguard Worker }, 656*333d2b36SAndroid Build Coastguard Worker }} 657*333d2b36SAndroid Build Coastguard Worker} 658*333d2b36SAndroid Build Coastguard Worker 659*333d2b36SAndroid Build Coastguard Workerfunc (a *AndroidTestImport) AndroidMkEntries() []android.AndroidMkEntries { 660*333d2b36SAndroid Build Coastguard Worker entriesList := a.AndroidAppImport.AndroidMkEntries() 661*333d2b36SAndroid Build Coastguard Worker entries := &entriesList[0] 662*333d2b36SAndroid Build Coastguard Worker entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 663*333d2b36SAndroid Build Coastguard Worker testSuiteComponent(entries, a.testProperties.Test_suites, Bool(a.testProperties.Per_testcase_directory)) 664*333d2b36SAndroid Build Coastguard Worker androidMkWriteTestData(a.data, entries) 665*333d2b36SAndroid Build Coastguard Worker }) 666*333d2b36SAndroid Build Coastguard Worker return entriesList 667*333d2b36SAndroid Build Coastguard Worker} 668*333d2b36SAndroid Build Coastguard Worker 669*333d2b36SAndroid Build Coastguard Workerfunc androidMkWriteTestData(data android.Paths, entries *android.AndroidMkEntries) { 670*333d2b36SAndroid Build Coastguard Worker var testFiles []string 671*333d2b36SAndroid Build Coastguard Worker for _, d := range data { 672*333d2b36SAndroid Build Coastguard Worker testFiles = append(testFiles, d.String()+":"+d.Rel()) 673*333d2b36SAndroid Build Coastguard Worker } 674*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_COMPATIBILITY_SUPPORT_FILES", testFiles...) 675*333d2b36SAndroid Build Coastguard Worker} 676*333d2b36SAndroid Build Coastguard Worker 677*333d2b36SAndroid Build Coastguard Workerfunc (r *RuntimeResourceOverlay) AndroidMkEntries() []android.AndroidMkEntries { 678*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{android.AndroidMkEntries{ 679*333d2b36SAndroid Build Coastguard Worker Class: "ETC", 680*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(r.outputFile), 681*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk", 682*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 683*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 684*333d2b36SAndroid Build Coastguard Worker entries.SetString("LOCAL_CERTIFICATE", r.certificate.AndroidMkString()) 685*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_MODULE_PATH", r.installDir) 686*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", r.properties.Overrides...) 687*333d2b36SAndroid Build Coastguard Worker // TODO: LOCAL_ACONFIG_FILES -- Might eventually need aconfig flags? 688*333d2b36SAndroid Build Coastguard Worker }, 689*333d2b36SAndroid Build Coastguard Worker }, 690*333d2b36SAndroid Build Coastguard Worker }} 691*333d2b36SAndroid Build Coastguard Worker} 692*333d2b36SAndroid Build Coastguard Worker 693*333d2b36SAndroid Build Coastguard Workerfunc (apkSet *AndroidAppSet) AndroidMkEntries() []android.AndroidMkEntries { 694*333d2b36SAndroid Build Coastguard Worker return []android.AndroidMkEntries{ 695*333d2b36SAndroid Build Coastguard Worker android.AndroidMkEntries{ 696*333d2b36SAndroid Build Coastguard Worker Class: "APPS", 697*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(apkSet.primaryOutput), 698*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_android_app_set.mk", 699*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 700*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 701*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_PRIVILEGED_MODULE", apkSet.Privileged()) 702*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_APK_SET_INSTALL_FILE", apkSet.PackedAdditionalOutputs()) 703*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_APKCERTS_FILE", apkSet.apkcertsFile) 704*333d2b36SAndroid Build Coastguard Worker entries.AddStrings("LOCAL_OVERRIDES_PACKAGES", apkSet.properties.Overrides...) 705*333d2b36SAndroid Build Coastguard Worker // TODO(b/289117800): LOCAL_ACONFIG_FILES for prebuilts -- Both declarations and values 706*333d2b36SAndroid Build Coastguard Worker }, 707*333d2b36SAndroid Build Coastguard Worker }, 708*333d2b36SAndroid Build Coastguard Worker }, 709*333d2b36SAndroid Build Coastguard Worker } 710*333d2b36SAndroid Build Coastguard Worker} 711*333d2b36SAndroid Build Coastguard Worker 712*333d2b36SAndroid Build Coastguard Workerfunc (al *ApiLibrary) AndroidMkEntries() []android.AndroidMkEntries { 713*333d2b36SAndroid Build Coastguard Worker var entriesList []android.AndroidMkEntries 714*333d2b36SAndroid Build Coastguard Worker 715*333d2b36SAndroid Build Coastguard Worker entriesList = append(entriesList, android.AndroidMkEntries{ 716*333d2b36SAndroid Build Coastguard Worker Class: "JAVA_LIBRARIES", 717*333d2b36SAndroid Build Coastguard Worker OutputFile: android.OptionalPathForPath(al.stubsJar), 718*333d2b36SAndroid Build Coastguard Worker Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", 719*333d2b36SAndroid Build Coastguard Worker ExtraEntries: []android.AndroidMkExtraEntriesFunc{ 720*333d2b36SAndroid Build Coastguard Worker func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { 721*333d2b36SAndroid Build Coastguard Worker entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) 722*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_CLASSES_JAR", al.stubsJar) 723*333d2b36SAndroid Build Coastguard Worker entries.SetPath("LOCAL_SOONG_HEADER_JAR", al.stubsJar) 724*333d2b36SAndroid Build Coastguard Worker }, 725*333d2b36SAndroid Build Coastguard Worker }, 726*333d2b36SAndroid Build Coastguard Worker }) 727*333d2b36SAndroid Build Coastguard Worker 728*333d2b36SAndroid Build Coastguard Worker return entriesList 729*333d2b36SAndroid Build Coastguard Worker} 730