Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: pylib/gyp/xcode_emulation.py

Issue 27035003: ninja/mac: Add iOS fields to ExtraPlistItems for ninja builds. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: cleanup Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 Google Inc. All rights reserved. 1 # Copyright (c) 2012 Google Inc. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """ 5 """
6 This module contains classes that help to emulate xcodebuild behavior on top of 6 This module contains classes that help to emulate xcodebuild behavior on top of
7 other build systems, such as make and ninja. 7 other build systems, such as make and ninja.
8 """ 8 """
9 9
10 import copy 10 import copy
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 # Convert that to '0463', '4H1503'. 785 # Convert that to '0463', '4H1503'.
786 version_list = self._GetStdout(['xcodebuild', '-version']).splitlines() 786 version_list = self._GetStdout(['xcodebuild', '-version']).splitlines()
787 version = version_list[0] 787 version = version_list[0]
788 build = version_list[-1] 788 build = version_list[-1]
789 # Be careful to convert "4.2" to "0420": 789 # Be careful to convert "4.2" to "0420":
790 version = version.split()[-1].replace('.', '') 790 version = version.split()[-1].replace('.', '')
791 version = (version + '0' * (3 - len(version))).zfill(4) 791 version = (version + '0' * (3 - len(version))).zfill(4)
792 build = build.split()[-1] 792 build = build.split()[-1]
793 return version, build 793 return version, build
794 794
795 def _XcodeIOSDeviceFamily(self, configname):
796 family = self.xcode_settings[configname].get('TARGETED_DEVICE_FAMILY', '1')
797 return [int(x) for x in family.split(',')]
798
795 def GetExtraPlistItems(self, configname=None): 799 def GetExtraPlistItems(self, configname=None):
796 """Returns a dictionary with extra items to insert into Info.plist.""" 800 """Returns a dictionary with extra items to insert into Info.plist."""
797 if not XcodeSettings._plist_cache: 801 if configname not in XcodeSettings._plist_cache:
798 cache = XcodeSettings._plist_cache 802 cache = {}
799 cache['BuildMachineOSBuild'] = self._BuildMachineOSBuild() 803 cache['BuildMachineOSBuild'] = self._BuildMachineOSBuild()
800 804
801 xcode, xcode_build = self._XcodeVersion() 805 xcode, xcode_build = self._XcodeVersion()
802 cache['DTXcode'] = xcode 806 cache['DTXcode'] = xcode
803 cache['DTXcodeBuild'] = xcode_build 807 cache['DTXcodeBuild'] = xcode_build
804 808
805 sdk_root = self._SdkRoot(configname) 809 sdk_root = self._SdkRoot(configname)
806 cache['DTSDKName'] = sdk_root 810 cache['DTSDKName'] = sdk_root
807 if xcode >= '0430': 811 if xcode >= '0430':
808 cache['DTSDKBuild'] = self._GetSdkVersionInfoItem( 812 cache['DTSDKBuild'] = self._GetSdkVersionInfoItem(
809 sdk_root, 'ProductBuildVersion') 813 sdk_root, 'ProductBuildVersion')
810 else: 814 else:
811 cache['DTSDKBuild'] = cache['BuildMachineOSBuild'] 815 cache['DTSDKBuild'] = cache['BuildMachineOSBuild']
812 816
813 return XcodeSettings._plist_cache 817 if self.isIOS:
818 cache['UIDeviceFamily'] = self._XcodeIOSDeviceFamily(configname)
819 if configname.endswith("iphoneos"):
820 cache['CFBundleSupportedPlatforms'] = ['iPhoneOS']
821 else:
822 cache['CFBundleSupportedPlatforms'] = ['iPhoneSimulator']
823 XcodeSettings._plist_cache[configname] = cache
824 return XcodeSettings._plist_cache[configname]
814 825
815 826
816 class MacPrefixHeader(object): 827 class MacPrefixHeader(object):
817 """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature. 828 """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature.
818 829
819 This feature consists of several pieces: 830 This feature consists of several pieces:
820 * If GCC_PREFIX_HEADER is present, all compilations in that project get an 831 * If GCC_PREFIX_HEADER is present, all compilations in that project get an
821 additional |-include path_to_prefix_header| cflag. 832 additional |-include path_to_prefix_header| cflag.
822 * If GCC_PRECOMPILE_PREFIX_HEADER is present too, then the prefix header is 833 * If GCC_PRECOMPILE_PREFIX_HEADER is present too, then the prefix header is
823 instead compiled, and all other compilations in the project get an 834 instead compiled, and all other compilations in the project get an
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 new_config_dict['xcode_settings']['SDKROOT'] = 'iphoneos' 1227 new_config_dict['xcode_settings']['SDKROOT'] = 'iphoneos'
1217 target_dict['configurations'][new_config_name] = new_config_dict 1228 target_dict['configurations'][new_config_name] = new_config_dict
1218 return targets 1229 return targets
1219 1230
1220 def CloneConfigurationForDeviceAndEmulator(target_dicts): 1231 def CloneConfigurationForDeviceAndEmulator(target_dicts):
1221 """If |target_dicts| contains any iOS targets, automatically create -iphoneos 1232 """If |target_dicts| contains any iOS targets, automatically create -iphoneos
1222 targets for iOS device builds.""" 1233 targets for iOS device builds."""
1223 if _HasIOSTarget(target_dicts): 1234 if _HasIOSTarget(target_dicts):
1224 return _AddIOSDeviceConfigurations(target_dicts) 1235 return _AddIOSDeviceConfigurations(target_dicts)
1225 return target_dicts 1236 return target_dicts
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698