|
|
|
@ -26,10 +26,12 @@ OPTIONS: |
|
|
|
|
Issue a clean before the normal build. |
|
|
|
|
-a, --autogen |
|
|
|
|
Start by rerunning autogen & configure. |
|
|
|
|
-r, --regenerate-descriptors |
|
|
|
|
-r, --regenerate-cpp-descriptors |
|
|
|
|
The descriptor.proto is checked in generated, cause it to regenerate. |
|
|
|
|
-j #, --jobs # |
|
|
|
|
Force the number of parallel jobs (useful for debugging build issues). |
|
|
|
|
--core-only |
|
|
|
|
Skip some of the core protobuf build/checks to shorten the build time. |
|
|
|
|
--skip-xcode |
|
|
|
|
Skip the invoke of Xcode to test the runtime on both iOS and OS X. |
|
|
|
|
--skip-xcode-ios |
|
|
|
@ -68,6 +70,7 @@ fi |
|
|
|
|
DO_AUTOGEN=no |
|
|
|
|
DO_CLEAN=no |
|
|
|
|
REGEN_CPP_DESCRIPTORS=no |
|
|
|
|
CORE_ONLY=no |
|
|
|
|
DO_XCODE_IOS_TESTS=yes |
|
|
|
|
DO_XCODE_OSX_TESTS=yes |
|
|
|
|
while [[ $# != 0 ]]; do |
|
|
|
@ -89,6 +92,9 @@ while [[ $# != 0 ]]; do |
|
|
|
|
shift |
|
|
|
|
NUM_MAKE_JOBS="${1}" |
|
|
|
|
;; |
|
|
|
|
--core-only ) |
|
|
|
|
CORE_ONLY=yes |
|
|
|
|
;; |
|
|
|
|
--skip-xcode ) |
|
|
|
|
DO_XCODE_IOS_TESTS=no |
|
|
|
|
DO_XCODE_OSX_TESTS=no |
|
|
|
@ -155,15 +161,20 @@ if [[ "${REGEN_CPP_DESCRIPTORS}" == "yes" ]] ; then |
|
|
|
|
./generate_descriptor_proto.sh -j "${NUM_MAKE_JOBS}" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
header "Building" |
|
|
|
|
# Can't issue these together, when fully parallel, something sometimes chokes |
|
|
|
|
# at random. |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" all |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" check |
|
|
|
|
# Fire off the conformance tests also. |
|
|
|
|
cd conformance |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" |
|
|
|
|
cd .. |
|
|
|
|
if [[ "${CORE_ONLY}" == "yes" ]] ; then |
|
|
|
|
header "Building core Only" |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" |
|
|
|
|
else |
|
|
|
|
header "Building" |
|
|
|
|
# Can't issue these together, when fully parallel, something sometimes chokes |
|
|
|
|
# at random. |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" all |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" check |
|
|
|
|
# Fire off the conformance tests also. |
|
|
|
|
cd conformance |
|
|
|
|
wrapped_make -j "${NUM_MAKE_JOBS}" |
|
|
|
|
cd .. |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
header "Ensuring the ObjC descriptors are current." |
|
|
|
|
# Find the newest input file (protos, compiler, and the generator script). |
|
|
|
@ -203,19 +214,42 @@ if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then |
|
|
|
|
xcodebuild |
|
|
|
|
-project objectivec/ProtocolBuffers_iOS.xcodeproj |
|
|
|
|
-scheme ProtocolBuffers |
|
|
|
|
# Don't need to worry about form factors or retina/non retina; |
|
|
|
|
# just pick a mix of OS Versions and 32/64 bit. |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 4s,OS=7.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 6,OS=8.4" # 64bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad 2,OS=7.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad Air,OS=8.4" # 64bit |
|
|
|
|
) |
|
|
|
|
# Don't need to worry about form factors or retina/non retina; |
|
|
|
|
# just pick a mix of OS Versions and 32/64 bit. |
|
|
|
|
# NOTE: Different Xcode have different simulated hardware/os support. |
|
|
|
|
readonly XCODE_VERSION_LINE="$(xcodebuild -version | grep Xcode\ )" |
|
|
|
|
readonly XCODE_VERSION="${XCODE_VERSION_LINE/Xcode /}" # drop the prefix. |
|
|
|
|
IOS_SIMULATOR_NAME="Simulator" |
|
|
|
|
case "${XCODE_VERSION}" in |
|
|
|
|
6.* ) |
|
|
|
|
XCODEBUILD_TEST_BASE_IOS+=( |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 4s,OS=7.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 6,OS=8.4" # 64bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad 2,OS=7.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad Air,OS=8.4" # 64bit |
|
|
|
|
) |
|
|
|
|
IOS_SIMULATOR_NAME="iOS Simulator" |
|
|
|
|
;; |
|
|
|
|
7.* ) |
|
|
|
|
XCODEBUILD_TEST_BASE_IOS+=( |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPhone 6,OS=9.0" # 64bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit |
|
|
|
|
-destination "platform=iOS Simulator,name=iPad Air,OS=9.0" # 64bit |
|
|
|
|
) |
|
|
|
|
;; |
|
|
|
|
* ) |
|
|
|
|
echo "Time to update the simulator targets for Xcode ${XCODE_VERSION}" |
|
|
|
|
exit 2 |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
header "Doing Xcode iOS build/tests - Debug" |
|
|
|
|
"${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test |
|
|
|
|
header "Doing Xcode iOS build/tests - Release" |
|
|
|
|
"${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test |
|
|
|
|
# Don't leave the simulator in the developer's face. |
|
|
|
|
killall "iOS Simulator" |
|
|
|
|
killall "${IOS_SIMULATOR_NAME}" |
|
|
|
|
fi |
|
|
|
|
if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then |
|
|
|
|
XCODEBUILD_TEST_BASE_OSX=( |
|
|
|
|