Home | History | Annotate | Download | only in type_envvars
      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