Add build script for windows package
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
nanopb_version = "nanopb-0.2.5-dev"
|
nanopb_version = "nanopb-0.2.5-dev"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import google.protobuf.descriptor_pb2 as descriptor
|
import google, distutils.util # bbfreeze seems to need these
|
||||||
import google.protobuf.text_format as text_format
|
import google.protobuf.text_format as text_format
|
||||||
except:
|
except:
|
||||||
print
|
print
|
||||||
@@ -15,18 +15,8 @@ except:
|
|||||||
print
|
print
|
||||||
raise
|
raise
|
||||||
|
|
||||||
try:
|
import proto.nanopb_pb2 as nanopb_pb2
|
||||||
import proto.nanopb_pb2 as nanopb_pb2
|
import proto.descriptor_pb2 as descriptor
|
||||||
except:
|
|
||||||
print
|
|
||||||
print "***************************************************************"
|
|
||||||
print "*** Could not import the precompiled nanopb_pb2.py. ***"
|
|
||||||
print "*** Run 'make' in the 'generator' folder to update the file.***"
|
|
||||||
print "***************************************************************"
|
|
||||||
print
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1025,6 +1015,13 @@ def main_cli():
|
|||||||
def main_plugin():
|
def main_plugin():
|
||||||
'''Main function when invoked as a protoc plugin.'''
|
'''Main function when invoked as a protoc plugin.'''
|
||||||
|
|
||||||
|
import sys
|
||||||
|
if sys.platform == "win32":
|
||||||
|
import os, msvcrt
|
||||||
|
# Set stdin and stdout to binary mode
|
||||||
|
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
|
||||||
|
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
|
||||||
|
|
||||||
import proto.plugin_pb2 as plugin_pb2
|
import proto.plugin_pb2 as plugin_pb2
|
||||||
data = sys.stdin.read()
|
data = sys.stdin.read()
|
||||||
request = plugin_pb2.CodeGeneratorRequest.FromString(data)
|
request = plugin_pb2.CodeGeneratorRequest.FromString(data)
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
all: nanopb_pb2.py plugin_pb2.py
|
all: nanopb_pb2.py plugin_pb2.py descriptor_pb2.py
|
||||||
|
|
||||||
nanopb_pb2.py: nanopb.proto
|
%_pb2.py: %.proto
|
||||||
protoc --python_out=. nanopb.proto
|
protoc --python_out=. $<
|
||||||
|
|
||||||
plugin_pb2.py: plugin.proto
|
|
||||||
protoc --python_out=. plugin.proto
|
|
||||||
|
|||||||
33
tools/make_windows_package.sh
Normal file
33
tools/make_windows_package.sh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Run this script in the top nanopb directory to create a binary package
|
||||||
|
# for Windows users. This script is designed to run under MingW/MSYS bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
VERSION=`git describe --always`
|
||||||
|
DEST=dist/$VERSION
|
||||||
|
|
||||||
|
rm -rf $DEST
|
||||||
|
mkdir -p $DEST
|
||||||
|
|
||||||
|
# Export the files from newest commit
|
||||||
|
git archive HEAD | tar x -C $DEST
|
||||||
|
|
||||||
|
# Rebuild the Python .proto files
|
||||||
|
make -BC $DEST/generator/proto
|
||||||
|
|
||||||
|
# Make the nanopb generator available as a protoc plugin
|
||||||
|
cp $DEST/generator/nanopb_generator.py $DEST/generator/protoc-gen-nanopb.py
|
||||||
|
|
||||||
|
# Package the Python libraries
|
||||||
|
( cd $DEST/generator; bbfreeze nanopb_generator.py protoc-gen-nanopb.py )
|
||||||
|
mv $DEST/generator/dist $DEST/generator-bin
|
||||||
|
|
||||||
|
# Remove temp file
|
||||||
|
rm $DEST/generator/protoc-gen-nanopb.py
|
||||||
|
|
||||||
|
# Package the protoc compiler
|
||||||
|
cp `which protoc`.exe $DEST/generator-bin/
|
||||||
|
|
||||||
Reference in New Issue
Block a user