Add build script for windows package
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
nanopb_version = "nanopb-0.2.5-dev"
|
||||
|
||||
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
|
||||
except:
|
||||
print
|
||||
@@ -15,18 +15,8 @@ except:
|
||||
print
|
||||
raise
|
||||
|
||||
try:
|
||||
import proto.nanopb_pb2 as nanopb_pb2
|
||||
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
|
||||
|
||||
|
||||
import proto.nanopb_pb2 as nanopb_pb2
|
||||
import proto.descriptor_pb2 as descriptor
|
||||
|
||||
|
||||
|
||||
@@ -1025,6 +1015,13 @@ def main_cli():
|
||||
def main_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
|
||||
data = sys.stdin.read()
|
||||
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
|
||||
protoc --python_out=. nanopb.proto
|
||||
|
||||
plugin_pb2.py: plugin.proto
|
||||
protoc --python_out=. plugin.proto
|
||||
%_pb2.py: %.proto
|
||||
protoc --python_out=. $<
|
||||
|
||||
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