diff options
author | 2018-01-04 11:16:51 -0800 | |
---|---|---|
committer | 2018-01-04 11:19:01 -0800 | |
commit | eb6d2a1ef2dc15931b238db52397ab04df9a4fe3 (patch) | |
tree | cc46505386c48cd6c6afc354740ee0fcd74606ef /src/main/java/com/google/devtools/build | |
parent | a5e9a0c6f46ccc6d7f899e5c5bc1414bc429d1f2 (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')
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)); } |