From 45c1a32e5046fe9323d4fd0213b474a554b2bbed Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Sun, 17 Nov 2013 20:04:29 +0200 Subject: Rework the Makefiles to be compatible with binary packages. --- generator/nanopb_generator.py | 17 ++++++++++++----- generator/protoc-gen-nanopb | 12 ++++++++++++ generator/protoc-gen-nanopb.bat | 11 +++++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100755 generator/protoc-gen-nanopb create mode 100644 generator/protoc-gen-nanopb.bat (limited to 'generator') 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 -- cgit 1.2.3-korg