aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-01-04 11:16:51 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-04 11:19:01 -0800
commiteb6d2a1ef2dc15931b238db52397ab04df9a4fe3 (patch)
treecc46505386c48cd6c6afc354740ee0fcd74606ef /src/main/java/com/google/devtools/build
parenta5e9a0c6f46ccc6d7f899e5c5bc1414bc429d1f2 (diff)
Remove defunct Android incremental dexing flags
RELNOTES: Remove defunct flags --experimental_incremental_dexing_for_lite_proto and --experimental_incremental_dexing_error_on_missed_jars that have long been enabled by default PiperOrigin-RevId: 180821902
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java52
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java23
3 files changed, 10 insertions, 72 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index fec5a588b4..a04ec3fd3d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -1449,12 +1449,11 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
ImmutableList<Artifact> classpath,
Map<Artifact, Artifact> dexArchives)
throws RuleErrorException {
+ // This is a simple Iterables.transform but with useful error message in case of missed Jars.
ImmutableList.Builder<Artifact> dexedClasspath = ImmutableList.builder();
- boolean reportMissing =
- AndroidCommon.getAndroidConfig(ruleContext).incrementalDexingErrorOnMissedJars();
for (Artifact jar : classpath) {
Artifact dexArchive = dexArchives.get(jar);
- if (reportMissing && dexArchive == null) {
+ if (dexArchive == null) {
// Users can create this situation by directly depending on a .jar artifact (checked in
// or coming from a genrule or similar, b/11285003). This will also catch new implicit
// dependencies that incremental dexing would need to be extended to (b/34949364).
@@ -1468,7 +1467,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
+ ". If this is an implicit dependency then the rule that "
+ "introduces it will need to be fixed to account for it correctly.");
}
- dexedClasspath.add(dexArchive != null ? dexArchive : jar);
+ dexedClasspath.add(dexArchive);
}
return dexedClasspath.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index b3cac7f29c..080fbb1852 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -430,39 +430,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
)
public int incrementalDexingShardsAfterProguard;
- /** Whether to look for incrementally dex protos built with java_lite_proto_library. */
- // TODO(b/31711689): remove this flag from config files and here
- @Option(
- name = "experimental_incremental_dexing_for_lite_protos",
- defaultValue = "true",
- category = "experimental",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {
- OptionEffectTag.ACTION_COMMAND_LINES,
- OptionEffectTag.LOADING_AND_ANALYSIS,
- },
- help = "Do not use."
- )
- public boolean incrementalDexingForLiteProtos;
-
- /**
- * Whether to error out when we find Jar files when building binaries that weren't converted to
- * a dex archive. This option will soon be removed from Bazel.
- */
- @Option(
- name = "experimental_incremental_dexing_error_on_missed_jars",
- defaultValue = "true",
- category = "experimental",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {
- OptionEffectTag.ACTION_COMMAND_LINES,
- OptionEffectTag.EAGERNESS_TO_EXIT,
- OptionEffectTag.LOADING_AND_ANALYSIS,
- },
- help = "Do not use."
- )
- public boolean incrementalDexingErrorOnMissedJars;
-
/** Whether to use a separate tool to shard classes before merging them into final dex files. */
@Option(
name = "experimental_use_dex_splitter_for_incremental_dexing",
@@ -825,8 +792,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
host.checkDesugarDeps = checkDesugarDeps;
host.incrementalDexing = incrementalDexing;
host.incrementalDexingShardsAfterProguard = incrementalDexingShardsAfterProguard;
- host.incrementalDexingForLiteProtos = incrementalDexingForLiteProtos;
- host.incrementalDexingErrorOnMissedJars = incrementalDexingErrorOnMissedJars;
host.incrementalDexingUseDexSharder = incrementalDexingUseDexSharder;
host.assumeMinSdkVersion = assumeMinSdkVersion;
host.nonIncrementalPerTargetDexopts = nonIncrementalPerTargetDexopts;
@@ -870,8 +835,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
private final ConfigurationDistinguisher configurationDistinguisher;
private final boolean incrementalDexing;
private final int incrementalDexingShardsAfterProguard;
- private final boolean incrementalDexingForLiteProtos;
- private final boolean incrementalDexingErrorOnMissedJars;
private final boolean incrementalDexingUseDexSharder;
private final boolean assumeMinSdkVersion;
private final ImmutableList<String> dexoptsSupportedInIncrementalDexing;
@@ -906,8 +869,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
this.configurationDistinguisher = options.configurationDistinguisher;
this.incrementalDexing = options.incrementalDexing;
this.incrementalDexingShardsAfterProguard = options.incrementalDexingShardsAfterProguard;
- this.incrementalDexingForLiteProtos = options.incrementalDexingForLiteProtos;
- this.incrementalDexingErrorOnMissedJars = options.incrementalDexingErrorOnMissedJars;
this.incrementalDexingUseDexSharder = options.incrementalDexingUseDexSharder;
this.assumeMinSdkVersion = options.assumeMinSdkVersion;
this.dexoptsSupportedInIncrementalDexing =
@@ -978,19 +939,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
return incrementalDexingShardsAfterProguard;
}
- /** Returns whether to look for Jars produced by {@code JavaLiteProtoAspect}. */
- public boolean incrementalDexingForLiteProtos() {
- return incrementalDexingForLiteProtos;
- }
-
- /**
- * Returns whether to report an error when Jars that weren't converted to dex archives are part of
- * an android binary.
- */
- public boolean incrementalDexingErrorOnMissedJars() {
- return incrementalDexingErrorOnMissedJars;
- }
-
/** Whether to use a separate tool to shard classes before merging them into final dex files. */
public boolean incrementalDexingUseDexSharder() {
return incrementalDexingUseDexSharder;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
index bab57265d9..509cb9fb25 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
@@ -103,19 +103,16 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
/** Aspect-only label for desugaring executable, to avoid name clashes with labels on rules. */
private static final String ASPECT_DESUGAR_PREREQ = "$aspect_desugar";
- private static final ImmutableList<String> TRANSITIVE_ATTRIBUTES_EXCEPT_FOR_PROTOS =
+ private static final ImmutableList<String> TRANSITIVE_ATTRIBUTES =
ImmutableList.of(
"deps",
"exports",
"runtime_deps",
":android_sdk",
- "aidl_lib"); // for the aidl runtime in the android_sdk rule
- private static final ImmutableList<String> TRANSITIVE_ATTRIBUTES =
- ImmutableList.<String>builder()
- .addAll(TRANSITIVE_ATTRIBUTES_EXCEPT_FOR_PROTOS)
+ "aidl_lib", // for the aidl runtime in the android_sdk rule
// To get from proto_library through proto_lang_toolchain rule to proto runtime library.
- .add(JavaLiteProtoAspect.PROTO_TOOLCHAIN_ATTR, "runtime")
- .build();
+ JavaLiteProtoAspect.PROTO_TOOLCHAIN_ATTR, "runtime");
+
private static final FlagMatcher DEXOPTS_SUPPORTED_IN_DEXBUILDER =
new FlagMatcher(
ImmutableList.of("--no-locals", "--no-optimize", "--no-warnings", "--positions"));
@@ -130,8 +127,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
public AspectDefinition getDefinition(AspectParameters params) {
AspectDefinition.Builder result =
new AspectDefinition.Builder(this)
- // We care about JavaRuntimeJarProvider, but rules don't advertise that
- // provider.
+ // We care about JavaRuntimeJarProvider, but rules don't advertise that provider.
.requireSkylarkProviders(SkylarkProviderIdentifier.forKey(JavaInfo.PROVIDER.getKey()))
.requireProviderSets(
ImmutableList.of(
@@ -274,8 +270,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
private static Iterable<Artifact> getProducedRuntimeJars(
ConfiguredTarget base, RuleContext ruleContext) {
- if (isProtoLibrary(ruleContext)
- && getAndroidConfig(ruleContext).incrementalDexingForLiteProtos()) {
+ if (isProtoLibrary(ruleContext)) {
if (!ruleContext.getPrerequisites("srcs", Mode.TARGET).isEmpty()) {
JavaCompilationArgsProvider javaCompilationArgsProvider =
WrappingProvider.Helper.getWrappedProvider(
@@ -322,12 +317,8 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
private static <T extends TransitiveInfoProvider> IterablesChain<T> collectPrerequisites(
RuleContext ruleContext, Class<T> classType) {
- ImmutableList<String> attrs =
- getAndroidConfig(ruleContext).incrementalDexingForLiteProtos()
- ? TRANSITIVE_ATTRIBUTES
- : TRANSITIVE_ATTRIBUTES_EXCEPT_FOR_PROTOS;
IterablesChain.Builder<T> result = IterablesChain.builder();
- for (String attr : attrs) {
+ for (String attr : TRANSITIVE_ATTRIBUTES) {
if (ruleContext.attributes().getAttributeType(attr) != null) {
result.add(ruleContext.getPrerequisites(attr, Mode.TARGET, classType));
}