diff options
author | 2016-11-10 19:37:20 +0000 | |
---|---|---|
committer | 2016-11-11 10:04:04 +0000 | |
commit | 51f64da2d9a917a18c292e624260e50544a09347 (patch) | |
tree | fdaf5eca8885afca31545f7e6a6428b41dafd809 /src/main/java/com/google/devtools/build/lib/rules | |
parent | 8dc081031d6c0cf6d5e65915c7322e0aa79aeb54 (diff) |
Blacklists for proto_lang_toolchain() no longer have to be proto_library's.
The intention is to use filegroup's instead.
The motivation is to avoid materializing the transitive srcs of a proto_library, which might be large. Using a filegroup makes it explicit that we only take the listed files into account.
RELNOTES: Blacklists for proto_lang_toolchain() no longer have to be proto_library's.
--
MOS_MIGRATED_REVID=138784908
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchain.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java | 12 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchain.java index 83b57c7b17..370a732223 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchain.java @@ -20,6 +20,7 @@ import static com.google.devtools.build.lib.collect.nestedset.Order.STABLE_ORDER import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.FileProvider; import com.google.devtools.build.lib.analysis.FilesToRunProvider; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleContext; @@ -35,9 +36,9 @@ public class ProtoLangToolchain implements RuleConfiguredTargetFactory { public ConfiguredTarget create(RuleContext ruleContext) throws InterruptedException, RuleErrorException { NestedSetBuilder<Artifact> blacklistedProtos = NestedSetBuilder.stableOrder(); - for (ProtoSourcesProvider protos : - ruleContext.getPrerequisites("blacklisted_protos", TARGET, ProtoSourcesProvider.class)) { - blacklistedProtos.addAll(protos.getDirectProtoSources()); + for (FileProvider protos : + ruleContext.getPrerequisites("blacklisted_protos", TARGET, FileProvider.class)) { + blacklistedProtos.addTransitive(protos.getFilesToBuild()); } return new RuleConfiguredTargetBuilder(ruleContext) diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java index 2643357f42..b525abd231 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoLangToolchainRule.java @@ -21,6 +21,7 @@ import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.BaseRuleClasses; +import com.google.devtools.build.lib.analysis.FileProvider; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; @@ -70,8 +71,7 @@ public class ProtoLangToolchainRule implements RuleDefinition { attr("blacklisted_protos", LABEL_LIST) .allowedFileTypes() .mandatoryNativeProviders( - ImmutableList.<Class<? extends TransitiveInfoProvider>>of( - ProtoSourcesProvider.class))) + ImmutableList.<Class<? extends TransitiveInfoProvider>>of(FileProvider.class))) .build(); } @@ -112,10 +112,10 @@ It's beneficial to enforce the compiler that LANG_proto_library uses is the same <pre class="code"> proto_lang_toolchain( - name = "java_stubby1_immutable", - command_line = "--$(PLUGIN_out)=no_enforce_api_compatibility,java_stubby_version=1,immutable:$(OUT)", - plugin = "//net/rpc/compiler:proto2_java_plugin", - runtime = "//java/com/google/net/rpc3:rpc3", + name = "javalite_toolchain", + command_line = "--$(PLUGIN_OUT)=shared,immutable:$(OUT)", + plugin = ":javalite_plugin", + runtime = ":protobuf_lite", ) </pre> |