summaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
Diffstat (limited to 'generator')
-rwxr-xr-xgenerator/nanopb_generator.py17
-rwxr-xr-xgenerator/protoc-gen-nanopb12
-rw-r--r--generator/protoc-gen-nanopb.bat11
3 files changed, 35 insertions, 5 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index 86c554a2..7b3c9f80 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -15,10 +15,17 @@ except:
print
raise
-import proto.nanopb_pb2 as nanopb_pb2
-import proto.descriptor_pb2 as descriptor
-
-
+try:
+ import proto.nanopb_pb2 as nanopb_pb2
+ import proto.descriptor_pb2 as descriptor
+except:
+ 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
# ---------------------------------------------------------------------------
@@ -1054,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()
diff --git a/generator/protoc-gen-nanopb b/generator/protoc-gen-nanopb
new file mode 100755
index 00000000..90be6a58
--- /dev/null
+++ b/generator/protoc-gen-nanopb
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# This file is used to invoke nanopb_generator.py as a plugin
+# to protoc on Linux and other *nix-style systems.
+# Use it like this:
+# protoc --plugin=nanopb=..../protoc-gen-nanopb --nanopb_out=dir foo.proto
+#
+# Note that if you use the binary package of nanopb, the protoc
+# path is already set up properly and there is no need to give
+# --plugin= on the command line.
+
+exec python $(dirname $0)/nanopb_generator.py --protoc-plugin
diff --git a/generator/protoc-gen-nanopb.bat b/generator/protoc-gen-nanopb.bat
new file mode 100644
index 00000000..f70ca600
--- /dev/null
+++ b/generator/protoc-gen-nanopb.bat
@@ -0,0 +1,11 @@
+:: This file is used to invoke nanopb_generator.py as a plugin
+:: to protoc on Windows.
+:: Use it like this:
+:: protoc --plugin=nanopb=..../protoc-gen-nanopb.bat --nanopb_out=dir foo.proto
+::
+:: Note that if you use the binary package of nanopb, the protoc
+:: path is already set up properly and there is no need to give
+:: --plugin= on the command line.
+
+set mydir=%~dp0
+python %mydir%\nanopb_generator.py --protoc-plugin