aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-09-13 21:26:16 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-14 18:46:50 +0200
commitb30b3de23a7fa01b8290ace0e688d75405689825 (patch)
tree9ef61beca546e42c74c9f8ba8fb5554e7d5347d6 /src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
parentca216f5eb4b1f1892219db0f578495bbbdbaa875 (diff)
Remove concept of "processorFlags" from Bazel.
They are just normal javacopts. The only user was Android databinding, so now we just merge databindings javacopts in with the rest of javacopts in AndroidCommon. RELNOTES: None PiperOrigin-RevId: 168578013
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java b/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
index 5d0bf12bfd..6d498a1a7d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java
@@ -152,8 +152,8 @@ public final class DataBinding {
* <p>This, in conjunction with {@link #createAnnotationFile} extends the Java compilation to
* translate data binding .xml into corresponding classes.
*/
- static void addAnnotationProcessor(RuleContext ruleContext,
- JavaTargetAttributes.Builder attributes, boolean isBinary) {
+ static void addAnnotationProcessor(
+ RuleContext ruleContext, JavaTargetAttributes.Builder attributes) {
JavaPluginInfoProvider plugin = ruleContext.getPrerequisite(
DATABINDING_ANNOTATION_PROCESSOR_ATTR, RuleConfiguredTarget.Mode.TARGET,
JavaPluginInfoProvider.class);
@@ -169,53 +169,52 @@ public final class DataBinding {
attributes.addProcessorPath(plugin.getProcessorClasspath());
attributes.addAdditionalOutputs(getMetadataOutputs(ruleContext));
- addProcessorFlags(ruleContext, attributes, isBinary);
+ //addProcessorFlags(ruleContext, attributes, isBinary);
}
/**
- * Adds javac flags to configure data binding's annotation processor.
+ * The javac flags that are needed to configure data binding's annotation processor.
*/
- private static void addProcessorFlags(RuleContext ruleContext,
- JavaTargetAttributes.Builder attributes, boolean isBinary) {
+ static ImmutableList<String> getJavacopts(RuleContext ruleContext, boolean isBinary) {
+ ImmutableList.Builder<String> flags = ImmutableList.builder();
String metadataOutputDir = getDataBindingExecPath(ruleContext).getPathString();
// Directory where the annotation processor looks for deps metadata output. The annotation
// processor automatically appends {@link DEP_METADATA_INPUT_DIR} to this path. Individual
// files can be anywhere under this directory, recursively.
- addProcessorFlag(attributes, "bindingBuildFolder", metadataOutputDir);
+ flags.add(createProcessorFlag("bindingBuildFolder", metadataOutputDir));
// Directory where the annotation processor should write this rule's metadata output. The
// annotation processor automatically appends {@link METADATA_OUTPUT_DIR} to this path.
- addProcessorFlag(attributes, "generationalFileOutDir", metadataOutputDir);
+ flags.add(createProcessorFlag("generationalFileOutDir", metadataOutputDir));
// Path to the Android SDK installation (if available).
- addProcessorFlag(attributes, "sdkDir", "/not/used");
+ flags.add(createProcessorFlag("sdkDir", "/not/used"));
// Whether the current rule is a library or binary.
- addProcessorFlag(attributes, "artifactType", isBinary ? "APPLICATION" : "LIBRARY");
+ flags.add(createProcessorFlag("artifactType", isBinary ? "APPLICATION" : "LIBRARY"));
// The path where data binding's resource processor wrote its output (the data binding XML
// expressions). The annotation processor reads this file to translate that XML into Java.
- addProcessorFlag(attributes, "xmlOutDir", getDataBindingExecPath(ruleContext).toString());
+ flags.add(createProcessorFlag("xmlOutDir", getDataBindingExecPath(ruleContext).toString()));
// Unused.
- addProcessorFlag(attributes, "exportClassListTo", "/tmp/exported_classes");
+ flags.add(createProcessorFlag("exportClassListTo", "/tmp/exported_classes"));
// The Java package for the current rule.
- addProcessorFlag(attributes, "modulePackage",
- AndroidCommon.getJavaPackage(ruleContext));
+ flags.add(createProcessorFlag("modulePackage", AndroidCommon.getJavaPackage(ruleContext)));
// The minimum Android SDK compatible with this rule.
- addProcessorFlag(attributes, "minApi", "14"); // TODO(gregce): update this
+ flags.add(createProcessorFlag("minApi", "14")); // TODO(gregce): update this
// If enabled, the annotation processor reports detailed output about its activities.
// addProcessorFlag(attributes, "enableDebugLogs", "1");
// If enabled, produces cleaner output for Android Studio.
- addProcessorFlag(attributes, "printEncodedErrors", "0");
+ flags.add(createProcessorFlag("printEncodedErrors", "0"));
// Specifies whether the current rule is a test. Currently unused.
// addDataBindingProcessorFlag(attributes, "isTestVariant", "false");
// Specifies that data binding is only used for test instrumentation. Currently unused.
// addDataBindingProcessorFlag(attributes, "enableForTests", null);
+ return flags.build();
}
/**
* Turns a key/value pair into a javac annotation processor flag received by data binding.
*/
- private static void addProcessorFlag(JavaTargetAttributes.Builder attributes,
- String flag, String value) {
- attributes.addProcessorFlag(String.format("-Aandroid.databinding.%s=%s", flag, value));
+ private static String createProcessorFlag(String flag, String value) {
+ return String.format("-Aandroid.databinding.%s=%s", flag, value);
}
/**