Rework the Makefiles to be compatible with binary packages.

This commit is contained in:
Petteri Aimonen
2013-11-17 20:04:29 +02:00
parent ef31774cd9
commit 45c1a32e50
8 changed files with 86 additions and 43 deletions

View File

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

12
generator/protoc-gen-nanopb Executable file
View File

@@ -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

View File

@@ -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