From 08391f35eeeac9583c9ae5010e5e37ca2a5bc0a4 Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Mon, 29 Oct 2012 19:15:34 +0200 Subject: [PATCH] Add nanopb version number to generated files. tools/set_version.sh is used to update the values. Update issue 36 Status: FixedInGit --- generator/nanopb_generator.py | 5 ++++- pb.h | 2 ++ tools/set_version.sh | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100755 tools/set_version.sh diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index bd164e03..dadad646 100644 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -1,4 +1,5 @@ '''Generate header file for nanopb from a ProtoBuf FileDescriptorSet.''' +nanopb_version = "nanopb-0.1.7-dev" try: import google.protobuf.descriptor_pb2 as descriptor @@ -31,7 +32,7 @@ except: # Generation of single fields # --------------------------------------------------------------------------- - +import time import os.path # Values are tuple (c type, pb ltype) @@ -429,6 +430,7 @@ def generate_header(dependencies, headername, enums, messages): ''' yield '/* Automatically generated nanopb header */\n' + yield '/* Generated by %s at %s. */\n\n' % (nanopb_version, time.asctime()) symbol = headername.replace('.', '_').upper() yield '#ifndef _PB_%s_\n' % symbol @@ -516,6 +518,7 @@ def generate_source(headername, enums, messages): '''Generate content for a source file.''' yield '/* Automatically generated nanopb constant definitions */\n' + yield '/* Generated by %s at %s. */\n\n' % (nanopb_version, time.asctime()) yield '#include "%s"\n\n' % headername for msg in messages: diff --git a/pb.h b/pb.h index 72b41963..cfcf6f75 100644 --- a/pb.h +++ b/pb.h @@ -6,6 +6,8 @@ * see pb_encode.h or pb_decode.h */ +#define NANOPB_VERSION nanopb-0.1.7-dev + #include #include #include diff --git a/tools/set_version.sh b/tools/set_version.sh new file mode 100755 index 00000000..e15a859d --- /dev/null +++ b/tools/set_version.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Run this from the top directory of nanopb tree. +# e.g. user@localhost:~/nanopb$ tools/set_version.sh nanopb-0.1.9-dev +# It sets the version number in pb.h and generator/nanopb_generator.py. + +sed -i -e 's/nanopb_version\s*=\s*"[^"]*"/nanopb_version = "'$1'"/' generator/nanopb_generator.py +sed -i -e 's/#define\s*NANOPB_VERSION\s*.*/#define NANOPB_VERSION '$1'/' pb.h + + -- 2.16.6