aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java95
1 files changed, 38 insertions, 57 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 977cdc39bd..5b385796d7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -44,7 +44,6 @@ import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault;
import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.BuildType;
-import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -68,9 +67,7 @@ import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.util.FileType;
import java.util.List;
-/**
- * Rule definitions for Android rules.
- */
+/** Rule definitions for Android rules. */
public final class AndroidRuleClasses {
/** Sources generated by a given target, in particular, {@code R.java}. */
public static final SafeImplicitOutputsFunction ANDROID_JAVA_SOURCE_JAR =
@@ -84,6 +81,7 @@ public final class AndroidRuleClasses {
*/
public static final SafeImplicitOutputsFunction ANDROID_LIBRARY_CLASS_JAR =
JavaSemantics.JAVA_LIBRARY_CLASS_JAR;
+
public static final SafeImplicitOutputsFunction ANDROID_LIBRARY_AAR =
fromTemplates("%{name}.aar");
// TODO(b/30307842): Remove this once it is no longer needed for resources migration.
@@ -91,14 +89,15 @@ public final class AndroidRuleClasses {
fromTemplates("%{name}_files/library.ap_");
/**
- * Source Jar for {@link #ANDROID_RESOURCES_CLASS_JAR}, which should be the same as
- * {@link #ANDROID_JAVA_SOURCE_JAR}.
+ * Source Jar for {@link #ANDROID_RESOURCES_CLASS_JAR}, which should be the same as {@link
+ * #ANDROID_JAVA_SOURCE_JAR}.
*/
public static final SafeImplicitOutputsFunction ANDROID_RESOURCES_SOURCE_JAR =
fromTemplates("%{name}_resources-src.jar");
/** Compiled {@link #ANDROID_JAVA_SOURCE_JAR}. */
public static final SafeImplicitOutputsFunction ANDROID_RESOURCES_CLASS_JAR =
fromTemplates("%{name}_resources.jar");
+
public static final SafeImplicitOutputsFunction ANDROID_RESOURCES_APK =
fromTemplates("%{name}.ap_");
public static final SafeImplicitOutputsFunction ANDROID_RESOURCES_AAPT2_LIBRARY_APK =
@@ -117,8 +116,7 @@ public final class AndroidRuleClasses {
fromTemplates("%{name}_files/resource_shrinker.log");
public static final SafeImplicitOutputsFunction ANDROID_INCREMENTAL_RESOURCES_APK =
fromTemplates("%{name}_files/incremental.ap_");
- public static final SafeImplicitOutputsFunction ANDROID_BINARY_APK =
- fromTemplates("%{name}.apk");
+ public static final SafeImplicitOutputsFunction ANDROID_BINARY_APK = fromTemplates("%{name}.apk");
public static final SafeImplicitOutputsFunction ANDROID_BINARY_INCREMENTAL_APK =
fromTemplates("%{name}_incremental.apk");
public static final SafeImplicitOutputsFunction ANDROID_BINARY_UNSIGNED_APK =
@@ -141,7 +139,7 @@ public final class AndroidRuleClasses {
fromTemplates("%{name}_symbols/symbols.zip");
public static final SafeImplicitOutputsFunction ANDROID_SYMLINKED_MANIFEST =
fromTemplates("%{name}_symlinked_manifest/AndroidManifest.xml");
- public static final ImplicitOutputsFunction ANDROID_PROCESSED_MANIFEST =
+ public static final SafeImplicitOutputsFunction ANDROID_PROCESSED_MANIFEST =
fromTemplates("%{name}_processed_manifest/AndroidManifest.xml");
public static final SafeImplicitOutputsFunction MOBILE_INSTALL_STUB_APPLICATION_MANIFEST =
fromTemplates("%{name}_files/mobile_install/AndroidManifest.xml");
@@ -205,8 +203,8 @@ public final class AndroidRuleClasses {
public static final SplitTransition<BuildOptions> ANDROID_SPLIT_TRANSITION =
new AndroidSplitTransition();
- private static final class AndroidSplitTransition implements
- SplitTransition<BuildOptions>, SkylarkValue {
+ private static final class AndroidSplitTransition
+ implements SplitTransition<BuildOptions>, SkylarkValue {
private static void setCrosstoolToAndroid(BuildOptions output, BuildOptions input) {
AndroidConfiguration.Options inputAndroidOptions =
input.get(AndroidConfiguration.Options.class);
@@ -308,12 +306,12 @@ public final class AndroidRuleClasses {
public static final FileType ANDROID_IDL = FileType.of(".aidl");
public static final String[] ALLOWED_DEPENDENCIES = {
- "aar_import",
- "android_library",
- "cc_library",
- "java_import",
- "java_library",
- "java_lite_proto_library",
+ "aar_import",
+ "android_library",
+ "cc_library",
+ "java_import",
+ "java_library",
+ "java_lite_proto_library",
};
public static boolean hasProguardSpecs(AttributeMap rule) {
@@ -380,9 +378,7 @@ public final class AndroidRuleClasses {
}
};
- /**
- * Definition of the {@code android_sdk} rule.
- */
+ /** Definition of the {@code android_sdk} rule. */
public static final class AndroidSdkRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
@@ -429,17 +425,15 @@ public final class AndroidRuleClasses {
@Override
public Metadata getMetadata() {
- return RuleDefinition.Metadata.builder()
- .name("android_sdk")
- .ancestors(BaseRuleClasses.BaseRule.class)
- .factoryClass(AndroidSdk.class)
- .build();
+ return RuleDefinition.Metadata.builder()
+ .name("android_sdk")
+ .ancestors(BaseRuleClasses.BaseRule.class)
+ .factoryClass(AndroidSdk.class)
+ .build();
}
}
- /**
- * Base class for rule definitions that support resource declarations.
- */
+ /** Base class for rule definitions that support resource declarations. */
public static final class AndroidResourceSupportRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, final RuleDefinitionEnvironment env) {
@@ -512,10 +506,10 @@ public final class AndroidRuleClasses {
.add(attr("enable_data_binding", Type.BOOLEAN))
// The javac annotation processor from Android's data binding library that turns
// processed XML expressions into Java code.
- .add(attr(DataBinding.DATABINDING_ANNOTATION_PROCESSOR_ATTR, BuildType.LABEL)
- .cfg(HOST)
- .value(env.getToolsLabel("//tools/android:databinding_annotation_processor")))
-
+ .add(
+ attr(DataBinding.DATABINDING_ANNOTATION_PROCESSOR_ATTR, BuildType.LABEL)
+ .cfg(HOST)
+ .value(env.getToolsLabel("//tools/android:databinding_annotation_processor")))
.build();
}
@@ -529,9 +523,7 @@ public final class AndroidRuleClasses {
}
}
- /**
- * Base class for Android rule definitions.
- */
+ /** Base class for Android rule definitions. */
public static final class AndroidBaseRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
@@ -599,9 +591,7 @@ public final class AndroidRuleClasses {
}
}
- /**
- * Base class for Android rule definitions that produce binaries.
- */
+ /** Base class for Android rule definitions that produce binaries. */
public static final class AndroidBinaryBaseRule implements RuleDefinition {
private final AndroidNeverlinkAspect androidNeverlinkAspect;
@@ -945,21 +935,19 @@ public final class AndroidRuleClasses {
.value(env.getToolsLabel("//tools/android:zip_filter")))
.advertiseSkylarkProvider(SkylarkProviderIdentifier.forKey(JavaInfo.PROVIDER.getKey()))
.build();
- }
+ }
- @Override
- public Metadata getMetadata() {
+ @Override
+ public Metadata getMetadata() {
return RuleDefinition.Metadata.builder()
.name("$android_binary_base")
.type(RuleClassType.ABSTRACT)
.ancestors(AndroidRuleClasses.AndroidBaseRule.class, AndroidResourceSupportRule.class)
.build();
- }
+ }
}
- /**
- * Semantic options for the dexer's multidex behavior.
- */
+ /** Semantic options for the dexer's multidex behavior. */
public enum MultidexMode {
// Build dexes with multidex, assuming native platform support for multidex.
NATIVE,
@@ -970,24 +958,20 @@ public final class AndroidRuleClasses {
// Build all dex code into a single classes.dex file.
OFF;
- /**
- * Returns the attribute value that specifies this mode.
- */
+ /** Returns the attribute value that specifies this mode. */
public String getAttributeValue() {
return toString().toLowerCase();
}
/**
- * Returns the name of the output dex classes file. In multidex mode, this is an archive
- * of (possibly) multiple files.
+ * Returns the name of the output dex classes file. In multidex mode, this is an archive of
+ * (possibly) multiple files.
*/
public String getOutputDexFilename() {
return this == OFF ? "classes.dex" : "classes.dex.zip";
}
- /**
- * Converts an attribute value to a corresponding mode. Returns null on no match.
- */
+ /** Converts an attribute value to a corresponding mode. Returns null on no match. */
public static MultidexMode fromValue(String value) {
for (MultidexMode mode : values()) {
if (mode.getAttributeValue().equals(value)) {
@@ -997,9 +981,7 @@ public final class AndroidRuleClasses {
return null;
}
- /**
- * Enumerates valid values for the "multidex" attribute.
- */
+ /** Enumerates valid values for the "multidex" attribute. */
public static List<String> getValidValues() {
List<String> ans = Lists.newArrayList();
for (MultidexMode mode : MultidexMode.values()) {
@@ -1009,4 +991,3 @@ public final class AndroidRuleClasses {
}
}
}
-