1 #!/bin/bash 2 # Copyright (c) 2014 Google Inc. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 set -e 7 8 # `xcodebuild -version` output looks like 9 # Xcode 4.6.3 10 # Build version 4H1503 11 # or like 12 # Xcode 4.2 13 # Build version 4C199 14 # or like 15 # Xcode 3.2.6 16 # Component versions: DevToolsCore-1809.0; DevToolsSupport-1806.0 17 # BuildVersion: 10M2518 18 # Convert that to '0463', '0420' and '0326' respectively. 19 function xcodeversion() { 20 xcodebuild -version | awk '/Xcode ([0-9]+\.[0-9]+(\.[0-9]+)?)/ { 21 version = $2 22 gsub(/\./, "", version) 23 if (length(version) < 3) { 24 version = version "0" 25 } 26 if (length(version) < 4) { 27 version = "0" version 28 } 29 } 30 END { print version }' 31 } 32 33 # Returns true if |string1| is smaller than |string2|. 34 # This function assumes that both strings represent Xcode version numbers 35 # as returned by |xcodeversion|. 36 function smaller() { 37 local min="$(echo -ne "${1}\n${2}\n" | sort -n | head -n1)" 38 test "${min}" != "${2}" 39 } 40 41 if [[ "$(xcodeversion)" < "0500" ]]; then 42 # Xcode version is older than 5.0, check that SDKROOT is set but empty. 43 [[ -z "${SDKROOT}" && -z "${SDKROOT-_}" ]] 44 else 45 # Xcode version is newer than 5.0, check that SDKROOT is set. 46 [[ "${SDKROOT}" == "$(xcodebuild -version -sdk '' Path)" ]] 47 fi 48