Fix protoc plugin path
[apps/agl-service-can-low-level.git] / generator / nanopb_generator.py
index 0002409..7b3c9f8 100755 (executable)
@@ -4,7 +4,7 @@
 nanopb_version = "nanopb-0.2.5-dev"
 
 try:
-    import google.protobuf.descriptor_pb2 as descriptor
+    import google, distutils.util # bbfreeze seems to need these
     import google.protobuf.text_format as text_format
 except:
     print
@@ -17,20 +17,17 @@ except:
 
 try:
     import proto.nanopb_pb2 as nanopb_pb2
+    import proto.descriptor_pb2 as descriptor
 except:
     print
-    print "***************************************************************"
-    print "*** Could not import the precompiled nanopb_pb2.py.         ***"
-    print "*** Run 'make' in the 'generator' folder to update the file.***"
-    print "***************************************************************"
+    print "********************************************************************"
+    print "*** Failed to import the protocol definitions for generator.     ***"
+    print "*** You have to run 'make' in the nanopb/generator/proto folder. ***"
+    print "********************************************************************"
     print
     raise
 
 
-
-
-
-
 # ---------------------------------------------------------------------------
 #                     Generation of single fields
 # ---------------------------------------------------------------------------
@@ -1025,6 +1022,13 @@ def main_cli():
 def main_plugin():
     '''Main function when invoked as a protoc plugin.'''
 
+    import sys
+    if sys.platform == "win32":
+        import os, msvcrt
+        # Set stdin and stdout to binary mode
+        msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
+        msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
+    
     import proto.plugin_pb2 as plugin_pb2
     data = sys.stdin.read()
     request = plugin_pb2.CodeGeneratorRequest.FromString(data)
@@ -1057,7 +1061,7 @@ def main_plugin():
 
 if __name__ == '__main__':
     # Check if we are running as a plugin under protoc
-    if 'protoc-gen-' in sys.argv[0]:
+    if 'protoc-gen-' in sys.argv[0] or '--protoc-plugin' in sys.argv:
         main_plugin()
     else:
         main_cli()