|
@@ -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=(
|