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

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

Issue 25355002: ninja/mac: Create -iphoneos device builds for iOS ninja generator. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Missing file 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
« no previous file with comments | « pylib/gyp/generator/ninja.py ('k') | test/ios/app-bundle/test-device.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 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
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
OLDNEW
« no previous file with comments | « pylib/gyp/generator/ninja.py ('k') | test/ios/app-bundle/test-device.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698