1 #include "google/protobuf/compiler/code_generator.h"
2 #include "google/protobuf/io/zero_copy_stream.h"
3 #include "google/protobuf/io/printer.h"
4 #include "google/protobuf/descriptor.h"
5 #include "google/protobuf/descriptor.pb.h"
8 #include "google/protobuf/compiler/plugin.h"
40 const string& parameter,
42 string*
error)
const {
43 for (
int i = 0;
i <
files.size();
i++) {
46 (new_pool_.FindFileByName(
file->
name()) ==
nullptr);
47 for (
int j = 0; j <
file->dependency_count(); j++) {
48 can_generate &= (new_pool_.FindFileByName(
49 file->dependency(j)->
name()) !=
nullptr);
51 for (
int j = 0; j <
file->public_dependency_count(); j++) {
52 can_generate &= (new_pool_.FindFileByName(
53 file->public_dependency(j)->
name()) !=
nullptr);
55 for (
int j = 0; j <
file->weak_dependency_count(); j++) {
56 can_generate &= (new_pool_.FindFileByName(
57 file->weak_dependency(j)->
name()) !=
nullptr);
70 const string& parameter,
72 string*
error)
const {
74 file->CopyTo(&new_file);
75 SchemaGroupStripper::StripFile(
file, &new_file);
83 std::vector<std::pair<string,string>> option_pairs;
86 std::unique_ptr<google::protobuf::io::ZeroCopyOutputStream>
output(
87 context->Open(basename +
".proto"));
88 string content = new_pool_.BuildFile(new_file)->DebugString();
100 int main(
int argc,
char* argv[]) {