Code Review
/
apps
/
agl-service-can-low-level.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix build on Windows
[apps/agl-service-can-low-level.git]
/
generator
/
nanopb_generator.py
diff --git
a/generator/nanopb_generator.py
b/generator/nanopb_generator.py
index
d67fe94
..
6ccb96f
100755
(executable)
--- a/
generator/nanopb_generator.py
+++ b/
generator/nanopb_generator.py
@@
-3,34
+3,40
@@
'''Generate header file for nanopb from a ProtoBuf FileDescriptorSet.'''
nanopb_version = "nanopb-0.2.5-dev"
'''Generate header file for nanopb from a ProtoBuf FileDescriptorSet.'''
nanopb_version = "nanopb-0.2.5-dev"
+import sys
+
+try:
+ # Add some dummy imports to keep packaging tools happy.
+ import google, distutils.util # bbfreeze seems to need these
+ import pkg_resources # pyinstaller / protobuf 2.5 seem to need these
+except:
+ # Don't care, we will error out later if it is actually important.
+ pass
+
try:
try:
- import google.protobuf.descriptor_pb2 as descriptor
import google.protobuf.text_format as text_format
except:
import google.protobuf.text_format as text_format
except:
- print
- print "*************************************************************"
- print "*** Could not import the Google protobuf Python libraries ***"
- print "*** Try installing package 'python-protobuf' or similar. ***"
- print "*************************************************************"
- print
+ sys.stderr.write('''
+ *************************************************************
+ *** Could not import the Google protobuf Python libraries ***
+ *** Try installing package 'python-protobuf' or similar. ***
+ *************************************************************
+ ''' + '\n')
raise
try:
raise
try:
- import nanopb_pb2
+ import proto.nanopb_pb2 as nanopb_pb2
+ import proto.descriptor_pb2 as descriptor
except:
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
+ sys.stderr.write('''
+ ********************************************************************
+ *** Failed to import the protocol definitions for generator. ***
+ *** You have to run 'make' in the nanopb/generator/proto folder. ***
+ ********************************************************************
+ ''' + '\n')
raise
raise
-
-
-
-
# ---------------------------------------------------------------------------
# Generation of single fields
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# Generation of single fields
# ---------------------------------------------------------------------------
@@
-1025,7
+1031,14
@@
def main_cli():
def main_plugin():
'''Main function when invoked as a protoc plugin.'''
def main_plugin():
'''Main function when invoked as a protoc plugin.'''
- import plugin_pb2
+ 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)
data = sys.stdin.read()
request = plugin_pb2.CodeGeneratorRequest.FromString(data)
@@
-1057,7
+1070,7
@@
def main_plugin():
if __name__ == '__main__':
# Check if we are running as a plugin under protoc
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()
main_plugin()
else:
main_cli()