aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaewoong Jung <jungjw@google.com>2019-05-13 09:23:20 -0700
committerJaewoong Jung <jungjw@google.com>2019-05-15 15:46:26 -0700
commita24af3ba207d0b5e965aad8a65689bf9a29db393 (patch)
tree939456f90e51915eea8f041a8b5cca5ce99666f5
parentbc975e8b897eaff7e5729fc362c31d35e838526a (diff)
downloadbuild_soong-a24af3ba207d0b5e965aad8a65689bf9a29db393.tar.gz
build_soong-a24af3ba207d0b5e965aad8a65689bf9a29db393.tar.bz2
build_soong-a24af3ba207d0b5e965aad8a65689bf9a29db393.zip
Turn off dex actions for sourceless modules.
Test: dexpreopt_test.go Fixes: 129370564 Change-Id: Ic292f37c4f782b14fce625b85817b58c31d3f276
-rw-r--r--java/dexpreopt_test.go20
-rw-r--r--java/java.go21
2 files changed, 31 insertions, 10 deletions
diff --git a/java/dexpreopt_test.go b/java/dexpreopt_test.go
index 4af2f5c3..7d0109fd 100644
--- a/java/dexpreopt_test.go
+++ b/java/dexpreopt_test.go
@@ -52,14 +52,26 @@ func TestDexpreoptEnabled(t *testing.T) {
}`,
enabled: true,
},
-
{
name: "app without sources",
bp: `
android_app {
name: "foo",
}`,
- // TODO(ccross): this should probably be false
+ enabled: false,
+ },
+ {
+ name: "app with libraries",
+ bp: `
+ android_app {
+ name: "foo",
+ static_libs: ["lib"],
+ }
+
+ java_library {
+ name: "lib",
+ srcs: ["a.java"],
+ }`,
enabled: true,
},
{
@@ -69,10 +81,8 @@ func TestDexpreoptEnabled(t *testing.T) {
name: "foo",
installable: true,
}`,
- // TODO(ccross): this should probably be false
- enabled: true,
+ enabled: false,
},
-
{
name: "static java library",
bp: `
diff --git a/java/java.go b/java/java.go
index 866b33c0..69195c80 100644
--- a/java/java.go
+++ b/java/java.go
@@ -962,7 +962,9 @@ func (j *Module) collectBuilderFlags(ctx android.ModuleContext, deps deps) javaB
return flags
}
-func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path) {
+func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
+
+ hasSrcs := false
j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.deviceProperties.Aidl.Export_include_dirs)
@@ -978,10 +980,15 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
}
srcFiles = j.genSources(ctx, srcFiles, flags)
+ if len(srcFiles) > 0 {
+ hasSrcs = true
+ }
srcJars := srcFiles.FilterByExt(".srcjar")
srcJars = append(srcJars, deps.srcJars...)
- srcJars = append(srcJars, extraSrcJars...)
+ if aaptSrcJar != nil {
+ srcJars = append(srcJars, aaptSrcJar)
+ }
// Collect source files from compiledJavaSrcs, compiledSrcJars and filter out Exclude_srcs
// that IDEInfo struct will use
@@ -1170,7 +1177,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
j.resourceJar = resourceJars[0]
}
- jars = append(jars, deps.staticJars...)
+ if len(deps.staticJars) > 0 {
+ jars = append(jars, deps.staticJars...)
+ hasSrcs = true
+ }
manifest := j.overrideManifest
if !manifest.Valid() && j.properties.Manifest != nil {
@@ -1281,7 +1291,8 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path
j.implementationAndResourcesJar = implementationAndResourcesJar
- if ctx.Device() && (Bool(j.properties.Installable) || Bool(j.deviceProperties.Compile_dex)) {
+ if ctx.Device() && hasSrcs &&
+ (Bool(j.properties.Installable) || Bool(j.deviceProperties.Compile_dex)) {
// Dex compilation
var dexOutputFile android.ModuleOutPath
dexOutputFile = j.compileDex(ctx, flags, outputFile, jarName)
@@ -1514,7 +1525,7 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
j.dexpreopter.isInstallable = Bool(j.properties.Installable)
j.dexpreopter.uncompressedDex = shouldUncompressDex(ctx, &j.dexpreopter)
j.deviceProperties.UncompressDex = j.dexpreopter.uncompressedDex
- j.compile(ctx)
+ j.compile(ctx, nil)
if (Bool(j.properties.Installable) || ctx.Host()) && !android.DirectlyInAnyApex(ctx, ctx.ModuleName()) {
j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),