diff options
Diffstat (limited to 'BuildScripts/BuildAllSDKs.sh')
-rwxr-xr-x | BuildScripts/BuildAllSDKs.sh | 90 |
1 files changed, 80 insertions, 10 deletions
diff --git a/BuildScripts/BuildAllSDKs.sh b/BuildScripts/BuildAllSDKs.sh index 32a867d..fccccf1 100755 --- a/BuildScripts/BuildAllSDKs.sh +++ b/BuildScripts/BuildAllSDKs.sh @@ -4,7 +4,7 @@ # This script builds the Tiger, Leopard, SnowLeopard and iPhone versions of the # requested target in the current basic config (debug, release, debug-gcov). # -# Copyright 2006-2008 Google Inc. +# Copyright 2006-2009 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy @@ -18,12 +18,17 @@ # License for the specific language governing permissions and limitations under # the License. +# This scrit runs as the build script, it actually exits having really done no +# build. Instead it creates and launches and AppleScript that then drives +# Xcode to do the real builds cycling through configurations/projects to get +# everything done. + GTM_PROJECT_TARGET="$1" GTMIPHONE_PROJECT_TARGET="$2" STARTING_TARGET="${TARGET_NAME}" SCRIPT_APP="${TMPDIR}DoBuild.app" -REQUESTED_BUILD_STYLE=$(echo "${BUILD_STYLE}" | sed -E "s/(.*OrLater-)?(.*)/\2/") +REQUESTED_BUILD_STYLE=$(echo "${BUILD_STYLE}" | sed -E "s/((iPhone.*)|(.*OrLater))-(.*)/\4/") # See if we were told to clean instead of build. PROJECT_ACTION="build" if [ "${ACTION}" == "clean" ]; then @@ -38,6 +43,7 @@ AVAILABLE_PLATFORMS=`eval ls ${DEVELOPER_DIR}/Platforms` GTMIPHONE_OPEN_EXTRAS="" GTMIPHONE_BUILD_EXTRAS="" if [ "${GTMIPHONE_PROJECT_TARGET}" != "" ]; then + AVAILABLE_IPHONE_SDKS=`eval ls ${DEVELOPER_DIR}/Platforms/iPhoneSimulator.platform/Developer/SDKs` GTMIPHONE_OPEN_EXTRAS=" if \"${AVAILABLE_PLATFORMS}\" contains \"iPhoneSimulator.platform\" then -- make sure both project files are open @@ -46,13 +52,77 @@ if [ "${GTMIPHONE_PROJECT_TARGET}" != "" ]; then end if" GTMIPHONE_BUILD_EXTRAS=" if \"${AVAILABLE_PLATFORMS}\" contains \"iPhoneSimulator.platform\" then - with timeout of 9999 seconds - tell project \"GTMiPhone\" - -- do the GTMiPhone build - ${PROJECT_ACTION} using build configuration \"${REQUESTED_BUILD_STYLE}\" - set active target to target \"${STARTING_TARGET}\" - end tell - end timeout + tell project \"GTMiPhone\" + -- wait for stub build to finish before kicking off the real builds. + set x to 0 + repeat while currently building + delay 0.5 + set x to x + 1 + if x > 6 then + display alert \"GTMiPhone is still building, can't start.\" + return + end if + end repeat + -- do the GTMiPhone builds + with timeout of 9999 seconds + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator2.0.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone2.0-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator2.1.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone2.1-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator2.2.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone2.2-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator2.2.1.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone2.2.1-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator3.0.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone3.0-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator3.1.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone3.1-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + if \"{$AVAILABLE_IPHONE_SDKS}\" contains \"iPhoneSimulator3.1.2.sdk\" then + set active target to target \"${GTMIPHONE_PROJECT_TARGET}\" + set buildResult to ${PROJECT_ACTION} using build configuration \"iPhone3.1.2-${REQUESTED_BUILD_STYLE}\" + set active target to target \"${STARTING_TARGET}\" + if buildResult is not equal to \"Build succeeded\" then + return + end if + end if + end timeout + end tell end if" fi @@ -63,7 +133,7 @@ OUR_BUILD_SCRIPT="on run ${GTMIPHONE_OPEN_EXTRAS} if \"${AVAILABLE_PLATFORMS}\" contains \"MacOSX.platform\" then tell project \"GTM\" - -- wait for build to finish + -- wait for stub build to finish before kicking off the real builds. set x to 0 repeat while currently building delay 0.5 |