diff options
author | Richard Geary <rgeary@tower-research.com> | 2015-01-23 12:35:03 -0500 |
---|---|---|
committer | Richard Geary <rgeary@tower-research.com> | 2015-01-23 12:52:31 -0500 |
commit | 532c94145b6605361513682601f1d8e9f97a2497 (patch) | |
tree | a05aef03338488ba7ef13fac8119b1ca2aecfa1d /src/google/protobuf/compiler/command_line_interface.h | |
parent | 5446deaea7ffc29f6e09368cb6238da083969123 (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.h | 9 |
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. |