|  | @@ -29,6 +29,28 @@
 | 
	
		
			
				|  |  |  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // Author: kenton@google.com (Kenton Varda)
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +// 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
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifndef GOOGLE_PROTOBUF_COMPILER_PLUGIN_H__
 | 
	
		
			
				|  |  |  #define GOOGLE_PROTOBUF_COMPILER_PLUGIN_H__
 | 
	
	
		
			
				|  | @@ -41,12 +63,7 @@ namespace compiler {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class CodeGenerator;    // code_generator.h
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// 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 PluginMain(argc, argv, &generator);
 | 
	
		
			
				|  |  | -//   }
 | 
	
		
			
				|  |  | +// Implements main() for a protoc plugin exposing the given code generator.
 | 
	
		
			
				|  |  |  LIBPROTOC_EXPORT int PluginMain(int argc, char* argv[], const CodeGenerator* generator);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }  // namespace compiler
 |