aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/command_line_interface.h
diff options
context:
space:
mode:
authorGravatar Richard Geary <rgeary@tower-research.com>2015-01-23 12:35:03 -0500
committerGravatar Richard Geary <rgeary@tower-research.com>2015-01-23 12:52:31 -0500
commit532c94145b6605361513682601f1d8e9f97a2497 (patch)
treea05aef03338488ba7ef13fac8119b1ca2aecfa1d /src/google/protobuf/compiler/command_line_interface.h
parent5446deaea7ffc29f6e09368cb6238da083969123 (diff)
Add support for outputting dependency manifest files, used by ninja and make
Use --manifest-file=somefile.d to output the dependency manifest. This file will contain a list of files which were read by protoc as part of creating the output files. It doesn't include the plugin inputs if plugins are used, that could be a later extension. The manifest file is in the format <output file>: <input files>. The manifest file format only allows you to specify one output file, which isn't a problem as it's used to detect input changes in order to detect when to rerun the protoc command. The output file used in the manifest is the manifest filename itself; to use this in ninja you should declare the manifest file as the first output as well as the depfile input.
Diffstat (limited to 'src/google/protobuf/compiler/command_line_interface.h')
-rw-r--r--src/google/protobuf/compiler/command_line_interface.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/google/protobuf/compiler/command_line_interface.h b/src/google/protobuf/compiler/command_line_interface.h
index 74a0adb4..59d57fbf 100644
--- a/src/google/protobuf/compiler/command_line_interface.h
+++ b/src/google/protobuf/compiler/command_line_interface.h
@@ -247,6 +247,11 @@ class LIBPROTOC_EXPORT CommandLineInterface {
// Implements the --descriptor_set_out option.
bool WriteDescriptorSet(const vector<const FileDescriptor*> parsed_files);
+ // Implements the --manifest-file option
+ bool GenerateDependencyManifestFile(
+ const vector<const FileDescriptor*> parsed_files,
+ DiskSourceTree * source_tree);
+
// Get all transitive dependencies of the given file (including the file
// itself), adding them to the given list of FileDescriptorProtos. The
// protos will be ordered such that every file is listed before any file that
@@ -353,6 +358,10 @@ class LIBPROTOC_EXPORT CommandLineInterface {
// FileDescriptorSet should be written. Otherwise, empty.
string descriptor_set_name_;
+ // If --manifest_file was given, this is the filename to which the input
+ // file should be written. Otherwise, empty.
+ string manifest_name_;
+
// True if --include_imports was given, meaning that we should
// write all transitive dependencies to the DescriptorSet. Otherwise, only
// the .proto files listed on the command-line are added.