Merge pull request #1853 from pherl/3.0.0-GA
Make protoc-artifacts able to build plugins.
This commit is contained in:
commit
7ba044a1c0
@ -1,17 +1,30 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Builds protoc executable into target/protoc.exe
|
# Builds protoc executable into target/protoc.exe; optionally build protoc
|
||||||
|
# plugins into target/protoc-gen-*.exe
|
||||||
# To be run from Maven.
|
# To be run from Maven.
|
||||||
# Usage: build-protoc.sh <OS> <ARCH>
|
# Usage: build-protoc.sh <OS> <ARCH> <TARGET>
|
||||||
# <OS> and <ARCH> are ${os.detected.name} and ${os.detected.arch} from os-maven-plugin
|
# <OS> and <ARCH> are ${os.detected.name} and ${os.detected.arch} from os-maven-plugin
|
||||||
|
# <TARGET> can be "protoc" or "protoc-gen-javalite"
|
||||||
OS=$1
|
OS=$1
|
||||||
ARCH=$2
|
ARCH=$2
|
||||||
|
MAKE_TARGET=$3
|
||||||
|
|
||||||
if [[ $# < 2 ]]; then
|
if [[ $# < 3 ]]; then
|
||||||
echo "No arguments provided. This script is intended to be run from Maven."
|
echo "No arguments provided. This script is intended to be run from Maven."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case $MAKE_TARGET in
|
||||||
|
protoc-gen-javalite)
|
||||||
|
;;
|
||||||
|
protoc)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Target ""$TARGET"" invalid."
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
# Under Cygwin, bash doesn't have these in PATH when called from Maven which
|
# Under Cygwin, bash doesn't have these in PATH when called from Maven which
|
||||||
# runs in Windows version of Java.
|
# runs in Windows version of Java.
|
||||||
export PATH="/bin:/usr/bin:$PATH"
|
export PATH="/bin:/usr/bin:$PATH"
|
||||||
@ -126,7 +139,7 @@ checkDependencies ()
|
|||||||
}
|
}
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
echo "Building protoc, OS=$OS ARCH=$ARCH"
|
echo "Building protoc, OS=$OS ARCH=$ARCH TARGET=$TARGET"
|
||||||
|
|
||||||
# Nested double quotes are unintuitive, but it works.
|
# Nested double quotes are unintuitive, but it works.
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
@ -134,7 +147,6 @@ cd "$(dirname "$0")"
|
|||||||
WORKING_DIR=$(pwd)
|
WORKING_DIR=$(pwd)
|
||||||
CONFIGURE_ARGS="--disable-shared"
|
CONFIGURE_ARGS="--disable-shared"
|
||||||
|
|
||||||
MAKE_TARGET="protoc"
|
|
||||||
if [[ "$OS" == windows ]]; then
|
if [[ "$OS" == windows ]]; then
|
||||||
MAKE_TARGET="${MAKE_TARGET}.exe"
|
MAKE_TARGET="${MAKE_TARGET}.exe"
|
||||||
fi
|
fi
|
||||||
@ -209,12 +221,13 @@ fi
|
|||||||
|
|
||||||
export CXXFLAGS LDFLAGS
|
export CXXFLAGS LDFLAGS
|
||||||
|
|
||||||
TARGET_FILE=target/protoc.exe
|
TARGET_FILE=target/$MAKE_TARGET.exe
|
||||||
|
|
||||||
cd "$WORKING_DIR"/.. && ./configure $CONFIGURE_ARGS &&
|
cd "$WORKING_DIR"/.. && ./configure $CONFIGURE_ARGS &&
|
||||||
cd src && make clean && make $MAKE_TARGET &&
|
cd src && make clean && make $MAKE_TARGET -j4 &&
|
||||||
cd "$WORKING_DIR" && mkdir -p target &&
|
cd "$WORKING_DIR" && mkdir -p target &&
|
||||||
(cp ../src/protoc $TARGET_FILE || cp ../src/protoc.exe $TARGET_FILE) ||
|
(cp ../src/$MAKE_TARGET $TARGET_FILE ||
|
||||||
|
cp ../src/$MAKE_TARGET.exe $TARGET_FILE) ||
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
if [[ "$OS" == osx ]]; then
|
if [[ "$OS" == osx ]]; then
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
<argument>build-protoc.sh</argument>
|
<argument>build-protoc.sh</argument>
|
||||||
<argument>${os.detected.name}</argument>
|
<argument>${os.detected.name}</argument>
|
||||||
<argument>${os.detected.arch}</argument>
|
<argument>${os.detected.arch}</argument>
|
||||||
|
<argument>protoc</argument>
|
||||||
</arguments>
|
</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
Loading…
Reference in New Issue
Block a user