Home | History | Annotate | Download | only in mac
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import os
      6 import subprocess
      7 import sys
      8 
      9 # This script prints information about the build system, the operating
     10 # system and the iOS or Mac SDK (depending on the platform "iphonesimulator",
     11 # "iphoneos" or "macosx" generally).
     12 #
     13 # In the GYP build, this is done inside GYP itself based on the SDKROOT
     14 # variable.
     15 
     16 def FormatVersion(version):
     17   """Converts Xcode version to a format required for Info.plist."""
     18   version = version.replace('.', '')
     19   version = version + '0' * (3 - len(version))
     20   return version.zfill(4)
     21 
     22 
     23 def FillXcodeVersion(settings):
     24   """Fills the Xcode version and build number into |settings|."""
     25   lines = subprocess.check_output(['xcodebuild', '-version']).splitlines()
     26   settings['xcode_version'] = FormatVersion(lines[0].split()[-1])
     27   settings['xcode_build'] = lines[-1].split()[-1]
     28 
     29 
     30 def FillMachineOSBuild(settings):
     31   """Fills OS build number into |settings|."""
     32   settings['machine_os_build'] = subprocess.check_output(
     33       ['sw_vers', '-buildVersion']).strip()
     34 
     35 
     36 def FillSDKPathAndVersion(settings, platform):
     37   """Fills the SDK path and version for |platform| into |settings|."""
     38   lines = subprocess.check_output(['xcodebuild', '-version', '-sdk',
     39       platform, 'Path', 'SDKVersion', 'ProductBuildVersion']).splitlines()
     40   settings['sdk_path'] = lines[0]
     41   settings['sdk_version'] = lines[1]
     42   settings['sdk_build'] = lines[2]
     43 
     44 
     45 if __name__ == '__main__':
     46   if len(sys.argv) != 2:
     47     sys.stderr.write(
     48         'usage: %s [iphoneos|iphonesimulator|macosx]\n' %
     49         os.path.basename(sys.argv[0]))
     50     sys.exit(1)
     51 
     52   settings = {}
     53   FillSDKPathAndVersion(settings, sys.argv[1])
     54   FillMachineOSBuild(settings)
     55   FillXcodeVersion(settings)
     56 
     57   for key in sorted(settings):
     58     print '%s="%s"' % (key, settings[key])
     59