aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java65
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java77
2 files changed, 56 insertions, 86 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
index 441b0c4b12..8a28a16a6e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
@@ -460,43 +460,38 @@ public final class ApplicationManifest {
if (isLibrary && AndroidCommon.getAndroidConfig(ruleContext).useParallelResourceProcessing()) {
// android_library should only build the APK one way (!incremental).
Preconditions.checkArgument(!incremental);
- Artifact rJavaClassJar =
- ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR);
-
- ResourceContainer parsed =
- new AndroidResourceParsingActionBuilder(ruleContext)
- .setParse(data)
- .withPrimary(resourceContainer)
- .setOutput(resourceContainer.getSymbols())
- .build(ruleContext);
-
- ResourceContainer generated =
- new LibraryRGeneratorActionBuilder()
- .setJavaPackage(resourceContainer.getJavaPackage())
- .withPrimary(parsed)
- .withDependencies(resourceDeps)
- .setClassJarOut(rJavaClassJar)
- .build(ruleContext);
+ Artifact rJavaClassJar = ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR);
+
+ if (resourceContainer.getSymbols() != null) {
+ new AndroidResourceParsingActionBuilder(ruleContext)
+ .withPrimary(resourceContainer)
+ .setParse(data)
+ .setOutput(resourceContainer.getSymbols())
+ .build(ruleContext);
+ }
- ResourceContainer merged =
+ AndroidResourceMergingActionBuilder resourcesMergerBuilder =
new AndroidResourceMergingActionBuilder(ruleContext)
- .setJavaPackage(generated.getJavaPackage())
- .withPrimary(generated)
+ .setJavaPackage(resourceContainer.getJavaPackage())
+ .withPrimary(resourceContainer)
.withDependencies(resourceDeps)
.setMergedResourcesOut(mergedResources)
.setManifestOut(manifestOut)
- .setDataBindingInfoZip(dataBindingInfoZip)
- .build(ruleContext);
+ .setClassJarOut(rJavaClassJar)
+ .setDataBindingInfoZip(dataBindingInfoZip);
+ ResourceContainer merged = resourcesMergerBuilder.build(ruleContext);
- processed =
+ AndroidResourceValidatorActionBuilder validatorBuilder =
new AndroidResourceValidatorActionBuilder(ruleContext)
.setJavaPackage(merged.getJavaPackage())
- .setDebug(ruleContext.getConfiguration().getCompilationMode() != CompilationMode.OPT)
+ .setDebug(
+ ruleContext.getConfiguration().getCompilationMode() != CompilationMode.OPT)
.setMergedResources(mergedResources)
.withPrimary(merged)
.setSourceJarOut(merged.getJavaSourceJar())
- .setRTxtOut(merged.getRTxt())
- .build(ruleContext);
+ .setRTxtOut(merged.getRTxt());
+ processed = validatorBuilder.build(ruleContext);
} else {
AndroidResourcesProcessorBuilder builder =
new AndroidResourcesProcessorBuilder(ruleContext)
@@ -646,16 +641,14 @@ public final class ApplicationManifest {
additionalAaptOpts.build(),
resourceFilter.getDensities());
- ResourceContainer updatedResources =
- resourceContainer
- .toBuilder()
- .setLabel(ruleContext.getLabel())
- .setApk(resourceApk)
- .setManifest(getManifest())
- .setJavaSourceJar(javaSourcesJar)
- .setJavaClassJar(null)
- .setSymbols(null)
- .build();
+ ResourceContainer updatedResources = resourceContainer.toBuilder()
+ .setLabel(ruleContext.getLabel())
+ .setApk(resourceApk)
+ .setManifest(getManifest())
+ .setJavaSourceJar(javaSourcesJar)
+ .setJavaClassJar(null)
+ .setSymbols(null)
+ .build();
aaptActionHelper.createGenerateProguardAction(proguardCfg, mainDexProguardCfg);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
index 8bba37d7d1..52cd935e2e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
@@ -718,10 +718,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"<resources><string name = 'hello'>Hello Android!</string></resources>");
ConfiguredTarget resource = getConfiguredTarget("//c/b/m/a:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("c/b/m/a/b_/res"), args);
}
@@ -736,10 +734,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"<resources><string name = 'hello'>Hello Android!</string></resources>");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/android/res"), args);
}
@@ -756,10 +752,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"<resources><string name = 'hello'>Hello Android!</string></resources>");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/android/res"), args);
}
@@ -774,10 +768,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"exports_files(['res/values/strings.xml'])");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/other/res"), args);
assertNoEvents();
}
@@ -795,10 +787,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
")");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/other/res"), args);
assertNoEvents();
}
@@ -817,10 +807,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"exports_files(['res/values/strings.xml'])");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/other/res"), args);
assertNoEvents();
}
@@ -841,10 +829,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
")");
ConfiguredTarget resource = getConfiguredTarget("//java/android:r");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/other/res"), args);
assertNoEvents();
}
@@ -1086,27 +1072,22 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
target.getProvider(AndroidResourcesProvider.class).getDirectAndroidResources());
SpawnAction resourceParserAction =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(target, AndroidRuleClasses.ANDROID_MERGED_SYMBOLS));
-
- SpawnAction mergeAction =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(target, AndroidRuleClasses.ANDROID_RESOURCES_ZIP));
-
+ (SpawnAction)
+ actionsTestUtil()
+ .getActionForArtifactEndingWith(artifacts,
+ "/" + resources.getSymbols().getFilename());
SpawnAction resourceClassJarAction =
(SpawnAction)
actionsTestUtil()
- .getActionForArtifactEndingWith(
- artifacts, "/" + resources.getJavaClassJar().getFilename());
-
+ .getActionForArtifactEndingWith(artifacts,
+ "/" + resources.getJavaClassJar().getFilename());
SpawnAction resourceSrcJarAction =
(SpawnAction)
actionsTestUtil()
- .getActionForArtifactEndingWith(
- artifacts, "/" + resources.getJavaSourceJar().getFilename());
+ .getActionForArtifactEndingWith(artifacts,
+ "/" + resources.getJavaSourceJar().getFilename());
assertThat(resourceParserAction.getMnemonic()).isEqualTo("AndroidResourceParser");
- assertThat(mergeAction.getMnemonic()).isEqualTo("AndroidResourceMerger");
- assertThat(resourceClassJarAction.getMnemonic()).isEqualTo("LibraryRClassGenerator");
+ assertThat(resourceClassJarAction.getMnemonic()).isEqualTo("AndroidResourceMerger");
assertThat(resourceSrcJarAction.getMnemonic()).isEqualTo("AndroidResourceValidator");
// Validator also generates an R.txt.
assertThat(resourceSrcJarAction.getOutputs()).contains(resources.getRTxt());
@@ -1376,10 +1357,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
" resource_files = ['d2-res/values/strings.xml'],",
" )");
ConfiguredTarget resource = getConfiguredTarget("//java/android/resources/d1:d1");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(resource, ImmutableList.of("java/android/resources/d1/d1-res"), args);
Truth.assertThat(getDirectDependentResourceDirs(resource, args))
.contains("java/android/resources/d2/d2-res");
@@ -1416,10 +1395,8 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
" )");
ConfiguredTarget resource = getConfiguredTarget("//java/android/resources/d1:d1");
- List<String> args =
- getGeneratingSpawnAction(
- getImplicitOutputArtifact(resource, AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .getArguments();
+ List<String> args = ((SpawnAction) getGeneratingAction(getResourceArtifact(resource)))
+ .getArguments();
assertPrimaryResourceDirs(
resource, ImmutableList.of("java/android/resources/d1/d1-res"), args);
Truth.assertThat(getDirectDependentResourceDirs(resource, args))