|
@@ -129,18 +129,55 @@ internal_install_python_deps() {
|
|
fi
|
|
fi
|
|
}
|
|
}
|
|
|
|
|
|
-build_objectivec_common () {
|
|
|
|
- # Reused the build script that takes care of configure and then Xcode
|
|
|
|
- # builds/tests.
|
|
|
|
- objectivec/DevTools/full_mac_build.sh --core-only "$@"
|
|
|
|
|
|
+internal_objectivec_common () {
|
|
|
|
+ # Make sure xctool is up to date. Adapted from
|
|
|
|
+ # http://docs.travis-ci.com/user/osx-ci-environment/
|
|
|
|
+ # We don't use a before_install because we test multiple OSes.
|
|
|
|
+ brew update
|
|
|
|
+ brew outdated xctool || brew upgrade xctool
|
|
|
|
+ # Reused the build script that takes care of configuring and ensuring things
|
|
|
|
+ # are up to date.
|
|
|
|
+ objectivec/DevTools/full_mac_build.sh --core-only --skip-xcode
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+internal_xctool_debug_and_release() {
|
|
|
|
+ xctool -configuration Debug "$@"
|
|
|
|
+ xctool -configuration Release "$@"
|
|
}
|
|
}
|
|
|
|
|
|
build_objectivec_ios() {
|
|
build_objectivec_ios() {
|
|
- build_objectivec_common --skip-xcode-osx
|
|
|
|
|
|
+ internal_objectivec_common
|
|
|
|
+ # https://github.com/facebook/xctool/issues/509 - unlike xcodebuild, xctool
|
|
|
|
+ # doesn't support >1 destination, so we have to build first and then run the
|
|
|
|
+ # tests one destination at a time.
|
|
|
|
+ internal_xctool_debug_and_release \
|
|
|
|
+ -project objectivec/ProtocolBuffers_iOS.xcodeproj \
|
|
|
|
+ -scheme ProtocolBuffers \
|
|
|
|
+ -sdk iphonesimulator \
|
|
|
|
+ build-tests
|
|
|
|
+ IOS_DESTINATIONS=(
|
|
|
|
+ "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
|
|
|
|
+ "platform=iOS Simulator,name=iPhone 6,OS=9.1" # 64bit
|
|
|
|
+ "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
|
|
|
|
+ "platform=iOS Simulator,name=iPad Air,OS=9.1" # 64bit
|
|
|
|
+ )
|
|
|
|
+ for i in "${IOS_DESTINATIONS[@]}" ; do
|
|
|
|
+ internal_xctool_debug_and_release \
|
|
|
|
+ -project objectivec/ProtocolBuffers_iOS.xcodeproj \
|
|
|
|
+ -scheme ProtocolBuffers \
|
|
|
|
+ -sdk iphonesimulator \
|
|
|
|
+ -destination "${i}" \
|
|
|
|
+ run-tests
|
|
|
|
+ done
|
|
}
|
|
}
|
|
|
|
|
|
build_objectivec_osx() {
|
|
build_objectivec_osx() {
|
|
- build_objectivec_common --skip-xcode-ios
|
|
|
|
|
|
+ internal_objectivec_common
|
|
|
|
+ internal_xctool_debug_and_release \
|
|
|
|
+ -project objectivec/ProtocolBuffers_OSX.xcodeproj \
|
|
|
|
+ -scheme ProtocolBuffers \
|
|
|
|
+ -destination "platform=OS X,arch=x86_64" \
|
|
|
|
+ test
|
|
}
|
|
}
|
|
|
|
|
|
build_python() {
|
|
build_python() {
|