aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar carmi <carmi@google.com>2017-08-05 03:27:57 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-08-07 11:22:24 +0200
commitec812a9a544bbd708a1d0b6041401bcaab6e5428 (patch)
tree21ccb0a7c6669369b8cca4aa709c5bd62faebe02 /src/main/java/com
parentcfe25a6e1f2a92f29b6455782c6d1cdbaf7e15c6 (diff)
Turn off C++ provider propagation from java_proto_library, until J2ObjcAspect ignores them.
RELNOTES: None PiperOrigin-RevId: 164335492
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto/BazelJavaProtoLibraryRule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java35
4 files changed, 43 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto/BazelJavaProtoLibraryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto/BazelJavaProtoLibraryRule.java
index 62e70cd2ed..007b27e4ec 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto/BazelJavaProtoLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/proto/BazelJavaProtoLibraryRule.java
@@ -29,6 +29,7 @@ import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.proto.JavaProtoLibrary;
+import com.google.devtools.build.lib.rules.proto.ProtoConfiguration;
/** Declaration of the {@code java_proto_library} rule. */
public class BazelJavaProtoLibraryRule implements RuleDefinition {
@@ -48,7 +49,7 @@ public class BazelJavaProtoLibraryRule implements RuleDefinition {
.build();
return builder
- .requiresConfigurationFragments(JavaConfiguration.class)
+ .requiresConfigurationFragments(JavaConfiguration.class, ProtoConfiguration.class)
/* <!-- #BLAZE_RULE(java_proto_library).ATTRIBUTE(deps) -->
The list of <a href="protocol-buffer.html#proto_library"><code>proto_library</code></a>
rules to generate Java code for.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index 9b331f2f1c..faaf5d0e06 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -163,6 +163,7 @@ public final class JavaConfiguration extends Fragment {
private final Label javaToolchain;
private final boolean explicitJavaTestDeps;
private final boolean experimentalTestRunner;
+ private final boolean jplPropagateCcLinkParamsStore;
// TODO(dmarting): remove once we have a proper solution for #2539
private final boolean legacyBazelJavaTest;
@@ -194,6 +195,7 @@ public final class JavaConfiguration extends Fragment {
this.enforceOneVersion = javaOptions.enforceOneVersion;
this.explicitJavaTestDeps = javaOptions.explicitJavaTestDeps;
this.experimentalTestRunner = javaOptions.experimentalTestRunner;
+ this.jplPropagateCcLinkParamsStore = javaOptions.jplPropagateCcLinkParamsStore;
ImmutableList.Builder<Label> translationsBuilder = ImmutableList.builder();
for (String s : javaOptions.translationTargets) {
@@ -414,4 +416,8 @@ public final class JavaConfiguration extends Fragment {
public boolean strictDepsJavaProtos() {
return strictDepsJavaProtos;
}
+
+ public boolean jplPropagateCcLinkParamsStore() {
+ return jplPropagateCcLinkParamsStore;
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
index 2661bdbb28..53f361ce0f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
@@ -30,6 +30,7 @@ import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
+import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.TriState;
import java.util.HashMap;
import java.util.LinkedHashSet;
@@ -493,6 +494,17 @@ public class JavaOptions extends FragmentOptions {
)
public OneVersionEnforcementLevel enforceOneVersion;
+ @Option(
+ name = "jplPropagateCcLinkParamsStore",
+ defaultValue = "false",
+ category = "rollout",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.LOADING_AND_ANALYSIS},
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
+ help = "Roll-out flag for making java_proto_library propagate CcLinkParamsStore. DO NOT USE."
+ )
+ public boolean jplPropagateCcLinkParamsStore;
+
@Override
public FragmentOptions getHost(boolean fallback) {
JavaOptions host = (JavaOptions) getDefault();
@@ -518,6 +530,8 @@ public class JavaOptions extends FragmentOptions {
host.enforceOneVersion = enforceOneVersion;
+ host.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore;
+
return host;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
index 395c025623..d91fdb9f33 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
@@ -29,8 +29,10 @@ import com.google.devtools.build.lib.analysis.Runfiles;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.WrappingProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
+import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.JavaProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaRunfilesProvider;
@@ -86,19 +88,24 @@ public class JavaProtoLibrary implements RuleConfiguredTargetFactory {
.addProvider(JavaRunfilesProvider.class, javaRunfilesProvider)
.build();
- return new RuleConfiguredTargetBuilder(ruleContext)
- .setFilesToBuild(filesToBuild.build())
- .addSkylarkTransitiveInfo(
- JavaSkylarkApiProvider.NAME, JavaSkylarkApiProvider.fromRuleContext())
- .addProvider(RunfilesProvider.withData(Runfiles.EMPTY, runfiles))
- .addOutputGroup(
- OutputGroupProvider.DEFAULT, NestedSetBuilder.<Artifact>emptySet(STABLE_ORDER))
- .addProvider(dependencyArgsProviders)
- .addProvider(sourceJarsProvider)
- .addProvider(javaRunfilesProvider)
- .addProvider(JavaRuleOutputJarsProvider.EMPTY)
- .addProvider(createCcLinkParamsStore(ruleContext, ImmutableList.of()))
- .addNativeDeclaredProvider(javaProvider)
- .build();
+ RuleConfiguredTargetBuilder result =
+ new RuleConfiguredTargetBuilder(ruleContext)
+ .setFilesToBuild(filesToBuild.build())
+ .addSkylarkTransitiveInfo(
+ JavaSkylarkApiProvider.NAME, JavaSkylarkApiProvider.fromRuleContext())
+ .addProvider(RunfilesProvider.withData(Runfiles.EMPTY, runfiles))
+ .addOutputGroup(
+ OutputGroupProvider.DEFAULT, NestedSetBuilder.<Artifact>emptySet(STABLE_ORDER))
+ .addProvider(dependencyArgsProviders)
+ .addProvider(sourceJarsProvider)
+ .addProvider(javaRunfilesProvider)
+ .addProvider(JavaRuleOutputJarsProvider.EMPTY)
+ .addNativeDeclaredProvider(javaProvider);
+
+ if (ruleContext.getFragment(JavaConfiguration.class).jplPropagateCcLinkParamsStore()) {
+ result.addProvider(createCcLinkParamsStore(ruleContext, ImmutableList.of()));
+ }
+
+ return result.build();
}
}