diff options
author | Joshua Salzedo <thHunkn0WNd@gmail.com> | 2019-12-11 19:30:49 -0800 |
---|---|---|
committer | Petteri Aimonen <jpa@git.mail.kapsi.fi> | 2019-12-13 22:12:52 +0200 |
commit | 92de18fd4eebba7056b1376241b7fb62bd9e7246 (patch) | |
tree | 1f05aaa9aded2dea5a6e38b43feb81cb1c68022d | |
parent | ba4e832488fbb7165b908a17225c367c13cb72f3 (diff) | |
download | nanopb-c-92de18fd4eebba7056b1376241b7fb62bd9e7246.tar.gz |
Backported Python pip packaging rules.
-rwxr-xr-x | extra/poetry/poetry_build.sh | 9 | ||||
-rw-r--r-- | extra/poetry/pyproject.toml | 26 | ||||
-rwxr-xr-x | generator/nanopb_generator.py | 9 | ||||
-rwxr-xr-x | tools/set_version.sh | 2 |
4 files changed, 44 insertions, 2 deletions
diff --git a/extra/poetry/poetry_build.sh b/extra/poetry/poetry_build.sh new file mode 100755 index 0000000..d428d39 --- /dev/null +++ b/extra/poetry/poetry_build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +rm -rf nanopb +mkdir nanopb +cp -pr ../../generator nanopb/ +touch nanopb/__init__.py nanopb/generator/__init__.py +cp -pr ../../README.md . +sed -i -e 's/\(version =.*\)-dev.*/\1-dev'$(git rev-list HEAD --count)'"/' pyproject.toml +poetry build diff --git a/extra/poetry/pyproject.toml b/extra/poetry/pyproject.toml new file mode 100644 index 0000000..119970b --- /dev/null +++ b/extra/poetry/pyproject.toml @@ -0,0 +1,26 @@ +[tool.poetry] +name = "nanopb" +version = "0.3.9.4" +description = "Nanopb is a small code-size Protocol Buffers implementation in ansi C. It is especially suitable for use in microcontrollers, but fits any memory restricted system." +authors = ["Petteri Aimonen <jpa@npb.mail.kapsi.fi>"] +license = "Zlib" +repository = "https://github.com/nanopb/nanopb/" +readme = "README.md" +homepage = "https://jpa.kapsi.fi/nanopb/" +documentation = "https://jpa.kapsi.fi/nanopb/docs/index.html" +keywords = ["protobuf", "protoc"] +classifiers = ["Topic :: Software Development :: Build Tools"] + +[tool.poetry.scripts] +nanopb_generator = "nanopb.generator.nanopb_generator:main_cli" +protoc-gen-nanopb = "nanopb.generator.nanopb_generator:main_plugin" + +[tool.poetry.dependencies] +python = ">=2.7" +protobuf = ">=3.6" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 12af67e..526a74a 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -15,6 +15,8 @@ try: # Add some dummy imports to keep packaging tools happy. import google, distutils.util # bbfreeze seems to need these import pkg_resources # pyinstaller / protobuf 2.5 seem to need these + import proto.nanopb_pb2 as nanopb_pb2 # pyinstaller seems to need this + import proto.plugin_pb2 as plugin_pb2 except: # Don't care, we will error out later if it is actually important. pass @@ -32,8 +34,7 @@ except: raise try: - import proto.nanopb_pb2 as nanopb_pb2 - import proto.plugin_pb2 as plugin_pb2 + from .proto import nanopb_pb2, plugin_pb2 except TypeError: sys.stderr.write(''' **************************************************************************** @@ -51,6 +52,10 @@ except TypeError: **************************************************************************** ''' + '\n') raise +except (ValueError, SystemError): + # Probably invoked directly instead of via installed scripts. + import proto.nanopb_pb2 as nanopb_pb2 + import proto.plugin_pb2 as plugin_pb2 except: sys.stderr.write(''' ******************************************************************** diff --git a/tools/set_version.sh b/tools/set_version.sh index 0adb597..6aa25eb 100755 --- a/tools/set_version.sh +++ b/tools/set_version.sh @@ -12,3 +12,5 @@ VERSION_ONLY=$(echo $1 | sed 's/nanopb-//') if [[ $1 != *dev ]] then sed -i -e 's/"version":\s*"[^"]*"/"version": "'$VERSION_ONLY'"/' library.json fi + +sed -i -e 's/version =.*/version = "'$VERSION_ONLY'"/' extra/poetry/pyproject.toml |