Loading java/androidmk.go +1 −1 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ func (prebuilt *DexImport) AndroidMkEntries() []android.AndroidMkEntries { } return []android.AndroidMkEntries{android.AndroidMkEntries{ Class: "JAVA_LIBRARIES", OutputFile: android.OptionalPathForPath(prebuilt.maybeStrippedDexJarFile), OutputFile: android.OptionalPathForPath(prebuilt.dexJarFile), Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { Loading java/app.go +1 −1 Original line number Diff line number Diff line Loading @@ -469,7 +469,7 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path { a.Module.compile(ctx, a.aaptSrcJar) } return a.maybeStrippedDexJarFile return a.dexJarFile } func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext) android.WritablePath { Loading java/app_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -685,6 +685,51 @@ func TestLibraryAssets(t *testing.T) { } } func TestAppJavaResources(t *testing.T) { bp := ` android_app { name: "foo", sdk_version: "current", java_resources: ["resources/a"], srcs: ["a.java"], } android_app { name: "bar", sdk_version: "current", java_resources: ["resources/a"], } ` ctx := testApp(t, bp) foo := ctx.ModuleForTests("foo", "android_common") fooResources := foo.Output("res/foo.jar") fooDexJar := foo.Output("dex-withres/foo.jar") fooDexJarAligned := foo.Output("dex-withres-aligned/foo.jar") fooApk := foo.Rule("combineApk") if g, w := fooDexJar.Inputs.Strings(), fooResources.Output.String(); !android.InList(w, g) { t.Errorf("expected resource jar %q in foo dex jar inputs %q", w, g) } if g, w := fooDexJarAligned.Input.String(), fooDexJar.Output.String(); g != w { t.Errorf("expected dex jar %q in foo aligned dex jar inputs %q", w, g) } if g, w := fooApk.Inputs.Strings(), fooDexJarAligned.Output.String(); !android.InList(w, g) { t.Errorf("expected aligned dex jar %q in foo apk inputs %q", w, g) } bar := ctx.ModuleForTests("bar", "android_common") barResources := bar.Output("res/bar.jar") barApk := bar.Rule("combineApk") if g, w := barApk.Inputs.Strings(), barResources.Output.String(); !android.InList(w, g) { t.Errorf("expected resources jar %q in bar apk inputs %q", w, g) } } func TestAndroidResources(t *testing.T) { testCases := []struct { name string Loading java/java.go +39 −41 Original line number Diff line number Diff line Loading @@ -434,9 +434,6 @@ type Module struct { // output file containing classes.dex and resources dexJarFile android.Path // output file that contains classes.dex if it should be in the output file maybeStrippedDexJarFile android.Path // output file containing uninstrumented classes that will be instrumented by jacoco jacocoReportClassesFile android.Path Loading Loading @@ -1818,8 +1815,8 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { } } if ctx.Device() && j.hasCode(ctx) && (Bool(j.properties.Installable) || Bool(j.dexProperties.Compile_dex)) { if ctx.Device() && (Bool(j.properties.Installable) || Bool(j.dexProperties.Compile_dex)) { if j.hasCode(ctx) { if j.shouldInstrumentStatic(ctx) { j.dexer.extraProguardFlagFiles = append(j.dexer.extraProguardFlagFiles, android.PathForSource(ctx, "build/make/core/proguard.jacoco.flags")) Loading Loading @@ -1855,9 +1852,13 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { // Dexpreopting j.dexpreopt(ctx, dexOutputFile) j.maybeStrippedDexJarFile = dexOutputFile outputFile = dexOutputFile } else { // There is no code to compile into a dex jar, make sure the resources are propagated // to the APK if this is an app. outputFile = implementationAndResourcesJar j.dexJarFile = j.resourceJar } if ctx.Failed() { return Loading Loading @@ -3184,7 +3185,6 @@ type DexImport struct { properties DexImportProperties dexJarFile android.Path maybeStrippedDexJarFile android.Path dexpreopter Loading Loading @@ -3271,8 +3271,6 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.dexpreopt(ctx, dexOutputFile) j.maybeStrippedDexJarFile = dexOutputFile if apexInfo.IsForPlatform() { ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), j.Stem()+".jar", dexOutputFile) Loading Loading
java/androidmk.go +1 −1 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ func (prebuilt *DexImport) AndroidMkEntries() []android.AndroidMkEntries { } return []android.AndroidMkEntries{android.AndroidMkEntries{ Class: "JAVA_LIBRARIES", OutputFile: android.OptionalPathForPath(prebuilt.maybeStrippedDexJarFile), OutputFile: android.OptionalPathForPath(prebuilt.dexJarFile), Include: "$(BUILD_SYSTEM)/soong_java_prebuilt.mk", ExtraEntries: []android.AndroidMkExtraEntriesFunc{ func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) { Loading
java/app.go +1 −1 Original line number Diff line number Diff line Loading @@ -469,7 +469,7 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path { a.Module.compile(ctx, a.aaptSrcJar) } return a.maybeStrippedDexJarFile return a.dexJarFile } func (a *AndroidApp) jniBuildActions(jniLibs []jniLib, ctx android.ModuleContext) android.WritablePath { Loading
java/app_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -685,6 +685,51 @@ func TestLibraryAssets(t *testing.T) { } } func TestAppJavaResources(t *testing.T) { bp := ` android_app { name: "foo", sdk_version: "current", java_resources: ["resources/a"], srcs: ["a.java"], } android_app { name: "bar", sdk_version: "current", java_resources: ["resources/a"], } ` ctx := testApp(t, bp) foo := ctx.ModuleForTests("foo", "android_common") fooResources := foo.Output("res/foo.jar") fooDexJar := foo.Output("dex-withres/foo.jar") fooDexJarAligned := foo.Output("dex-withres-aligned/foo.jar") fooApk := foo.Rule("combineApk") if g, w := fooDexJar.Inputs.Strings(), fooResources.Output.String(); !android.InList(w, g) { t.Errorf("expected resource jar %q in foo dex jar inputs %q", w, g) } if g, w := fooDexJarAligned.Input.String(), fooDexJar.Output.String(); g != w { t.Errorf("expected dex jar %q in foo aligned dex jar inputs %q", w, g) } if g, w := fooApk.Inputs.Strings(), fooDexJarAligned.Output.String(); !android.InList(w, g) { t.Errorf("expected aligned dex jar %q in foo apk inputs %q", w, g) } bar := ctx.ModuleForTests("bar", "android_common") barResources := bar.Output("res/bar.jar") barApk := bar.Rule("combineApk") if g, w := barApk.Inputs.Strings(), barResources.Output.String(); !android.InList(w, g) { t.Errorf("expected resources jar %q in bar apk inputs %q", w, g) } } func TestAndroidResources(t *testing.T) { testCases := []struct { name string Loading
java/java.go +39 −41 Original line number Diff line number Diff line Loading @@ -434,9 +434,6 @@ type Module struct { // output file containing classes.dex and resources dexJarFile android.Path // output file that contains classes.dex if it should be in the output file maybeStrippedDexJarFile android.Path // output file containing uninstrumented classes that will be instrumented by jacoco jacocoReportClassesFile android.Path Loading Loading @@ -1818,8 +1815,8 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { } } if ctx.Device() && j.hasCode(ctx) && (Bool(j.properties.Installable) || Bool(j.dexProperties.Compile_dex)) { if ctx.Device() && (Bool(j.properties.Installable) || Bool(j.dexProperties.Compile_dex)) { if j.hasCode(ctx) { if j.shouldInstrumentStatic(ctx) { j.dexer.extraProguardFlagFiles = append(j.dexer.extraProguardFlagFiles, android.PathForSource(ctx, "build/make/core/proguard.jacoco.flags")) Loading Loading @@ -1855,9 +1852,13 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { // Dexpreopting j.dexpreopt(ctx, dexOutputFile) j.maybeStrippedDexJarFile = dexOutputFile outputFile = dexOutputFile } else { // There is no code to compile into a dex jar, make sure the resources are propagated // to the APK if this is an app. outputFile = implementationAndResourcesJar j.dexJarFile = j.resourceJar } if ctx.Failed() { return Loading Loading @@ -3184,7 +3185,6 @@ type DexImport struct { properties DexImportProperties dexJarFile android.Path maybeStrippedDexJarFile android.Path dexpreopter Loading Loading @@ -3271,8 +3271,6 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.dexpreopt(ctx, dexOutputFile) j.maybeStrippedDexJarFile = dexOutputFile if apexInfo.IsForPlatform() { ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), j.Stem()+".jar", dexOutputFile) Loading