Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 gyp.common | 11 import gyp.common |
| 11 import os.path | 12 import os.path |
| 12 import re | 13 import re |
| 13 import shlex | 14 import shlex |
| 14 import subprocess | 15 import subprocess |
| 15 import sys | 16 import sys |
| 16 from gyp.common import GypError | 17 from gyp.common import GypError |
| 17 | 18 |
| 18 class XcodeSettings(object): | 19 class XcodeSettings(object): |
| 19 """A class that understands the gyp 'xcode_settings' object.""" | 20 """A class that understands the gyp 'xcode_settings' object.""" |
| (...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1183 def GetSpecPostbuildCommands(spec, quiet=False): | 1184 def GetSpecPostbuildCommands(spec, quiet=False): |
| 1184 """Returns the list of postbuilds explicitly defined on |spec|, in a form | 1185 """Returns the list of postbuilds explicitly defined on |spec|, in a form |
| 1185 executable by a shell.""" | 1186 executable by a shell.""" |
| 1186 postbuilds = [] | 1187 postbuilds = [] |
| 1187 for postbuild in spec.get('postbuilds', []): | 1188 for postbuild in spec.get('postbuilds', []): |
| 1188 if not quiet: | 1189 if not quiet: |
| 1189 postbuilds.append('echo POSTBUILD\\(%s\\) %s' % ( | 1190 postbuilds.append('echo POSTBUILD\\(%s\\) %s' % ( |
| 1190 spec['target_name'], postbuild['postbuild_name'])) | 1191 spec['target_name'], postbuild['postbuild_name'])) |
| 1191 postbuilds.append(gyp.common.EncodePOSIXShellList(postbuild['action'])) | 1192 postbuilds.append(gyp.common.EncodePOSIXShellList(postbuild['action'])) |
| 1192 return postbuilds | 1193 return postbuilds |
| 1194 | |
|
Nico
2013/10/04 19:35:07
python style guide says two blank lines between fu
justincohen
2013/10/04 19:42:40
Done.
| |
| 1195 def HasIOSTarget(targets): | |
|
Nico
2013/10/04 19:35:07
this is module-private, start name with a _
justincohen
2013/10/04 19:42:40
Done.
| |
| 1196 """Returns true if any target contains the iOS specific key | |
| 1197 IPHONEOS_DEPLOYMENT_TARGET.""" | |
| 1198 for target_dict in targets.values(): | |
| 1199 for config in target_dict['configurations'].values(): | |
| 1200 settings = config.get('xcode_settings', {}) | |
| 1201 if settings.get('IPHONEOS_DEPLOYMENT_TARGET'): | |
|
Nico
2013/10/04 19:35:07
If it fits in one line, go with
if config.get('
justincohen
2013/10/04 19:42:40
Done.
| |
| 1202 return True | |
| 1203 return False | |
| 1204 | |
| 1205 | |
| 1206 def AddIOSDeviceConfigurations(targets): | |
|
Nico
2013/10/04 19:35:07
Also add a _ in front of the name
justincohen
2013/10/04 19:42:40
Done.
| |
| 1207 """Clone all targets and append -iphoneos to the name. Configure these targets | |
| 1208 to build for iOS devices.""" | |
| 1209 for target_dict in targets.values(): | |
| 1210 for config_name in target_dict['configurations'].keys(): | |
| 1211 config = target_dict['configurations'][config_name] | |
| 1212 new_config_name = config_name + '-iphoneos' | |
| 1213 new_config_dict = copy.deepcopy(config) | |
| 1214 if target_dict['toolset'] == 'target': | |
| 1215 new_config_dict['xcode_settings']['ARCHS'] = ['armv7'] | |
| 1216 new_config_dict['xcode_settings']['SDKROOT'] = 'iphoneos' | |
| 1217 target_dict['configurations'][new_config_name] = new_config_dict | |
| 1218 return targets | |
| 1219 | |
| 1220 def CloneConfigurationForDeviceAndEmulator(target_dicts): | |
| 1221 """If |target_dicts| contains any iOS targets, automatically create -iphoneos | |
| 1222 targets for iOS device builds.""" | |
| 1223 if HasIOSTarget(target_dicts): | |
| 1224 return AddIOSDeviceConfigurations(target_dicts) | |
| 1225 return target_dicts | |
| OLD | NEW |