plugin.h
#include <google/protobuf/compiler/plugin.h>
namespace google::protobuf::compiler
Front-end for protoc code generator plugins written in C++.
To implement a protoc plugin in C++, simply write an implementation of CodeGenerator, then create a main() function like:
int main(int argc, char* argv[[]]) { MyCodeGenerator generator; return google::protobuf::compiler::PluginMain(argc, argv, &generator); }
You must link your plugin against libprotobuf and libprotoc.
To get protoc to use the plugin, do one of the following:
- Place the plugin binary somewhere in the PATH and give it the name "protoc-gen-NAME" (replacing "NAME" with the name of your plugin). If you then invoke protoc with the parameter --NAME_out=OUT_DIR (again, replace "NAME" with your plugin's name), protoc will invoke your plugin to generate the output, which will be placed in OUT_DIR.
-
Place the plugin binary anywhere, with any name, and pass the --plugin parameter to protoc to direct it to your plugin like so:
protoc --plugin=protoc-gen-NAME=path/to/mybinary --NAME_out=OUT_DIR
On Windows, make sure to include the .exe suffix:
protoc --plugin=protoc-gen-NAME=path/to/mybinary.exe --NAME_out=OUT_DIR
Classes in this file |
---|
File Members
These definitions are not part of any class.
| |
---|---|
LIBPROTOC_EXPORT int |
PluginMain(int argc, char * argv, const CodeGenerator * generator)
Implements main() for a protoc plugin exposing the given code generator.
|