aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/proto
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2017-03-27 22:41:02 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2017-03-28 19:49:14 +0000
commit47e52357d4b339cafe383945c25964d470700915 (patch)
tree1db782cfdd34217f32121b38ced2ec99ce0110f3 /src/main/java/com/google/devtools/build/lib/rules/proto
parentbf0b990f5c00b9fb3d60f1c54956f4a22cabc687 (diff)
A flag to control the outputs that cc_proto_library expects from proto-compiler.
-- PiperOrigin-RevId: 151381769 MOS_MIGRATED_REVID=151381769
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/proto')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java59
1 files changed, 41 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index 36b1785e6a..83faa0783e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
+import com.google.devtools.common.options.Converters;
import com.google.devtools.common.options.Option;
import java.util.List;
@@ -111,6 +112,24 @@ public class ProtoConfiguration extends Fragment {
public StrictDepsMode strictProtoDeps;
@Option(
+ name = "cc_proto_library_header_suffixes",
+ defaultValue = ".pb.h",
+ category = "semantics",
+ help = "Sets the prefixes of header files that a cc_proto_library creates.",
+ converter = Converters.CommaSeparatedOptionListConverter.class
+ )
+ public List<String> ccProtoLibraryHeaderSuffixes;
+
+ @Option(
+ name = "cc_proto_library_source_suffixes",
+ defaultValue = ".pb.cc",
+ category = "semantics",
+ help = "Sets the prefixes of source files that a cc_proto_library creates.",
+ converter = Converters.CommaSeparatedOptionListConverter.class
+ )
+ public List<String> ccProtoLibrarySourceSuffixes;
+
+ @Option(
name = "reuseJavaCompileActionsFromProtoLibrary",
defaultValue = "true",
category = "experimental",
@@ -129,6 +148,8 @@ public class ProtoConfiguration extends Fragment {
host.protoToolchainForJavaLite = protoToolchainForJavaLite;
host.protoToolchainForCc = protoToolchainForCc;
host.strictProtoDeps = strictProtoDeps;
+ host.ccProtoLibraryHeaderSuffixes = ccProtoLibraryHeaderSuffixes;
+ host.ccProtoLibrarySourceSuffixes = ccProtoLibrarySourceSuffixes;
return host;
}
}
@@ -154,22 +175,16 @@ public class ProtoConfiguration extends Fragment {
}
}
- private final boolean experimentalProtoExtraActions;
private final ImmutableList<String> protocOpts;
- private final Label protoCompiler;
- private final Label protoToolchainForJava;
- private final Label protoToolchainForJavaLite;
- private final Label protoToolchainForCc;
- private final StrictDepsMode strictProtoDeps;
+ private final ImmutableList<String> ccProtoLibraryHeaderSuffixes;
+ private final ImmutableList<String> ccProtoLibrarySourceSuffixes;
+ private final Options options;
public ProtoConfiguration(Options options) {
- this.experimentalProtoExtraActions = options.experimentalProtoExtraActions;
this.protocOpts = ImmutableList.copyOf(options.protocOpts);
- this.protoCompiler = options.protoCompiler;
- this.protoToolchainForJava = options.protoToolchainForJava;
- this.protoToolchainForJavaLite = options.protoToolchainForJavaLite;
- this.protoToolchainForCc = options.protoToolchainForCc;
- this.strictProtoDeps = options.strictProtoDeps;
+ this.ccProtoLibraryHeaderSuffixes = ImmutableList.copyOf(options.ccProtoLibraryHeaderSuffixes);
+ this.ccProtoLibrarySourceSuffixes = ImmutableList.copyOf(options.ccProtoLibrarySourceSuffixes);
+ this.options = options;
}
public ImmutableList<String> protocOpts() {
@@ -182,26 +197,34 @@ public class ProtoConfiguration extends Fragment {
* proto_library target are run.
*/
public boolean runExperimentalProtoExtraActions() {
- return experimentalProtoExtraActions;
+ return options.experimentalProtoExtraActions;
}
public Label protoCompiler() {
- return protoCompiler;
+ return options.protoCompiler;
}
public Label protoToolchainForJava() {
- return protoToolchainForJava;
+ return options.protoToolchainForJava;
}
public Label protoToolchainForJavaLite() {
- return protoToolchainForJavaLite;
+ return options.protoToolchainForJavaLite;
}
public Label protoToolchainForCc() {
- return protoToolchainForCc;
+ return options.protoToolchainForCc;
}
public StrictDepsMode strictProtoDeps() {
- return strictProtoDeps;
+ return options.strictProtoDeps;
+ }
+
+ public List<String> ccProtoLibraryHeaderSuffixes() {
+ return ccProtoLibraryHeaderSuffixes;
+ }
+
+ public List<String> ccProtoLibrarySourceSuffixes() {
+ return ccProtoLibrarySourceSuffixes;
}
}