aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/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
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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DataBinding.java37
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java15
6 files changed, 26 insertions, 62 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index 843e96319f..40c5a61a6b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.android;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
@@ -556,14 +557,16 @@ public class AndroidCommon {
bootclasspath =
ImmutableList.of(AndroidSdkProvider.fromRuleContext(ruleContext).getAndroidJar());
}
+ Iterable<String> javacopts = androidSemantics.getJavacArguments(ruleContext);
+ if (DataBinding.isEnabled(ruleContext)) {
+ javacopts = Iterables.concat(javacopts, DataBinding.getJavacopts(ruleContext, isBinary));
+ }
JavaTargetAttributes.Builder attributes =
javaCommon
- .initCommon(
- idlHelper.getIdlGeneratedJavaSources(),
- androidSemantics.getJavacArguments(ruleContext))
+ .initCommon(idlHelper.getIdlGeneratedJavaSources(), javacopts)
.setBootClassPath(bootclasspath);
if (DataBinding.isEnabled(ruleContext)) {
- DataBinding.addAnnotationProcessor(ruleContext, attributes, isBinary);
+ DataBinding.addAnnotationProcessor(ruleContext, attributes);
}
JavaCompilationArtifacts.Builder artifactsBuilder = new JavaCompilationArtifacts.Builder();
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);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
index aa2fc6a104..90a81bdc00 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java
@@ -224,7 +224,6 @@ public final class JavaCompilationHelper {
builder.setClassDirectory(classDir(classJar));
builder.setProcessorPaths(attributes.getProcessorPath());
builder.addProcessorNames(attributes.getProcessorNames());
- builder.addProcessorFlags(attributes.getProcessorFlags());
builder.setStrictJavaDeps(attributes.getStrictJavaDeps());
builder.setDirectJars(attributes.getDirectJars());
builder.setCompileTimeDependencyArtifacts(attributes.getCompileTimeDependencyArtifacts());
@@ -377,7 +376,6 @@ public final class JavaCompilationHelper {
// only run API-generating annotation processors during header compilation
builder.setProcessorPaths(attributes.getApiGeneratingProcessorPath());
builder.addProcessorNames(attributes.getApiGeneratingProcessorNames());
- builder.addProcessorFlags(attributes.getProcessorFlags());
builder.setJavacOpts(getJavacOpts());
builder.setTempDirectory(tempDir(headerJar));
builder.setOutputJar(headerJar);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index 04ffa63f27..7f04049806 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -526,8 +526,6 @@ public final class JavaCompileAction extends SpawnAction {
private PathFragment classDirectory;
private NestedSet<Artifact> processorPath = NestedSetBuilder.emptySet(Order.NAIVE_LINK_ORDER);
private final List<String> processorNames = new ArrayList<>();
- /** The list of custom javac flags to pass to annotation processors. */
- private final List<String> processorFlags = new ArrayList<>();
private String ruleKind;
private Label targetLabel;
private boolean testOnly = false;
@@ -713,9 +711,6 @@ public final class JavaCompileAction extends SpawnAction {
if (!processorNames.isEmpty()) {
result.addAll("--processors", ImmutableList.copyOf(processorNames));
}
- if (!processorFlags.isEmpty()) {
- result.addAll("--javacopts", ImmutableList.copyOf(processorFlags));
- }
if (!sourceJars.isEmpty()) {
result.addExecPaths("--source_jars", ImmutableList.copyOf(sourceJars));
}
@@ -978,11 +973,6 @@ public final class JavaCompileAction extends SpawnAction {
return this;
}
- public Builder addProcessorFlags(Collection<String> processorFlags) {
- this.processorFlags.addAll(processorFlags);
- return this;
- }
-
public Builder setLangtoolsJar(Artifact langtoolsJar) {
this.langtoolsJar = langtoolsJar;
return this;
@@ -1014,7 +1004,7 @@ public final class JavaCompileAction extends SpawnAction {
this.targetLabel = targetLabel;
return this;
}
-
+
public Builder setTestOnly(boolean testOnly) {
this.testOnly = testOnly;
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
index 16c8823f62..134326487f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
@@ -195,7 +195,6 @@ public class JavaHeaderCompileAction extends SpawnAction {
private ImmutableList<String> javacOpts;
private NestedSet<Artifact> processorPath = NestedSetBuilder.emptySet(Order.STABLE_ORDER);
private final List<String> processorNames = new ArrayList<>();
- private final List<String> processorFlags = new ArrayList<>();
private NestedSet<Artifact> javabaseInputs;
private Artifact javacJar;
@@ -281,13 +280,6 @@ public class JavaHeaderCompileAction extends SpawnAction {
return this;
}
- /** Sets annotation processor flags to pass to javac. */
- public Builder addProcessorFlags(Collection<String> processorFlags) {
- checkNotNull(processorFlags, "processorFlags must not be null");
- this.processorFlags.addAll(processorFlags);
- return this;
- }
-
/** Sets the kind of the build rule being compiled (e.g. {@code java_library}). */
public Builder setRuleKind(@Nullable String ruleKind) {
this.ruleKind = ruleKind;
@@ -571,9 +563,6 @@ public class JavaHeaderCompileAction extends SpawnAction {
if (!processorNames.isEmpty()) {
result.addAll("--processors", ImmutableList.copyOf(processorNames));
}
- if (!processorFlags.isEmpty()) {
- result.addAll("--javacopts", ImmutableList.copyOf(processorFlags));
- }
if (!processorPath.isEmpty()) {
result.addExecPaths("--processorpath", processorPath);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java
index 0f2ec192cd..cddf7384ac 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java
@@ -73,7 +73,6 @@ public class JavaTargetAttributes {
// Classpath directories can't be represented as artifacts (TreeArtifact isn't appropriate
// here since all we need is a path string to apply to the command line).
private final Set<String> processorNames = new LinkedHashSet<>();
- private final Set<String> processorFlags = new LinkedHashSet<>();
private final NestedSetBuilder<Artifact> apiGeneratingProcessorPath =
NestedSetBuilder.naiveLinkOrder();
@@ -314,12 +313,6 @@ public class JavaTargetAttributes {
return this;
}
- public Builder addProcessorFlag(String processorFlag) {
- Preconditions.checkArgument(!built);
- processorFlags.add(processorFlag);
- return this;
- }
-
public Builder addProcessorPath(NestedSet<Artifact> jars) {
Preconditions.checkArgument(!built);
processorPath.addTransitive(jars);
@@ -370,7 +363,6 @@ public class JavaTargetAttributes {
nativeLibraries,
processorPath.build(),
processorNames,
- processorFlags,
apiGeneratingProcessorPath.build(),
apiGeneratingProcessorNames,
resources,
@@ -436,7 +428,6 @@ public class JavaTargetAttributes {
private final NestedSet<Artifact> processorPath;
private final ImmutableSet<String> processorNames;
- private final ImmutableSet<String> processorFlags;
private final NestedSet<Artifact> apiGeneratingProcessorPath;
private final ImmutableSet<String> apiGeneratingProcessorNames;
@@ -469,7 +460,6 @@ public class JavaTargetAttributes {
List<Artifact> nativeLibraries,
NestedSet<Artifact> processorPath,
Set<String> processorNames,
- Set<String> processorFlags,
NestedSet<Artifact> apiGeneratingProcessorPath,
Set<String> apiGeneratingProcessorNames,
Map<PathFragment, Artifact> resources,
@@ -497,7 +487,6 @@ public class JavaTargetAttributes {
this.nativeLibraries = ImmutableList.copyOf(nativeLibraries);
this.processorPath = processorPath;
this.processorNames = ImmutableSet.copyOf(processorNames);
- this.processorFlags = ImmutableSet.copyOf(processorFlags);
this.apiGeneratingProcessorPath = apiGeneratingProcessorPath;
this.apiGeneratingProcessorNames = ImmutableSet.copyOf(apiGeneratingProcessorNames);
this.resources = ImmutableMap.copyOf(resources);
@@ -611,10 +600,6 @@ public class JavaTargetAttributes {
return processorNames;
}
- public Collection<String> getProcessorFlags() {
- return processorFlags;
- }
-
public boolean hasSources() {
return !sourceFiles.isEmpty() || !sourceJars.isEmpty();
}