@ -129,18 +129,55 @@ internal_install_python_deps() {
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_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_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( ) {