aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2018-11-10 14:45:20 +0200
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2019-12-14 09:48:05 +0200
commit29440cd9b9000a38ad6f6d91d1b9c7be1f7cd50c (patch)
tree977a8da591adb1fed97e45e9881d97baa2d389a7
parente32e7c7ee2a472a50bc17e25bb13472fb1ddf53c (diff)
downloadnanopb-c-29440cd9b9000a38ad6f6d91d1b9c7be1f7cd50c.tar.gz
Automatically rebuild nanopb_pb2.py
-rw-r--r--generator/proto/__init__.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/generator/proto/__init__.py b/generator/proto/__init__.py
index e69de29..96b2ee0 100644
--- a/generator/proto/__init__.py
+++ b/generator/proto/__init__.py
@@ -0,0 +1,19 @@
+'''This file automatically rebuilds the proto definitions for Python.'''
+
+import os
+import os.path
+import sys
+import subprocess
+
+dirname = os.path.dirname(__file__)
+protosrc = os.path.join(dirname, "nanopb.proto")
+protodst = os.path.join(dirname, "nanopb_pb2.py")
+
+if os.path.isfile(protosrc):
+ src_date = os.path.getmtime(protosrc)
+ if not os.path.isfile(protodst) or os.path.getmtime(protodst) < src_date:
+ cmd = ["protoc", "--python_out=.", "nanopb.proto", "plugin.proto"]
+ status = subprocess.call(cmd, cwd = dirname)
+ if status != 0:
+ sys.stderr.write("Failed to build nanopb_pb2.py: " + ' '.join(cmd) + "\n")
+