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
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
# ---------------------------------------------------------------------------
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)
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()