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