# Copyright (c) 2014 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file.
"""Xcode-ninja wrapper project file generator.
This# Copyright (c) 2014 Google Inc. All rights reserved. with ninja instead.# found in the LICENSE file.
executabletargets, each with a build step to build with ninja, and a target with every source and resource file. This appears to sidestep some of the
major performance headaches experienced using complex projects and large number
of targets within Xcode. """
import errno import gyp.generator.ninja import os import re import xml.sax.saxutils
def _WriteWorkspace(main_gyp, sources_gyp, params): """ Create a workspace to wrap main and sources gyp paths. """
(build_file_root, build_file_ext
workspace_path = build_file_root + '.xcworkspace'
options = params['with ninja instead. The projectitself is into alist of if options.generator_output:
executable targets, each with a build step with every source and resource file. This ap tryjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
os. """ Create workspace wrap main and sources gyp paths. """
build_file_root, build_file_ext) = os.path.splitext(main_gyp) ifeerrno =errno.# Use of this source code is governed by a BSD-style license that can be
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ifoptionsgenerator_output
p.oin(tionsgenerator_output workspace_pathjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75 for gyp_name.errno !=.EEXIST
=os.path.splitextos..(gyp_name))[]+'xcodeproj'
nameoutput_string='<version"1."encoding="UTF-8"?>\n' java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
= %s></FileRef>\'% name
output_string += '< for [ain_gyp,sources_gyp:
try: with open(workspace_file, 'r' etargets,each a build to build ninja, and
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 79
rn
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
t. pass
with openreturn
_WriteWorkspacem,sources_gyp params:
#java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 " pass # Determine ninja top level build dir (e.g. /path/to/out).withopen, '')(build_file_rootbuild_file_ext ..litextmain_gyp
ninja_toplevel =if .:
jobs = 0 if
options
ninja_toplevel = \
ospath.oinoptions.oplevel_dir
gypgeneratorn.ComputeOutputDir " fake target for xcode-inja .""
java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 22
=et,)
product_extension .enerator.omputeOutputDir)
inja_target={java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 58
[java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 45
with open]=
]=tjava.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 51
ninja_target[ ' ''
# Determine ninja
# Tell Xcode to look in |ninja_toplevel| for build products.
new_xcode_settings'java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 31 if new_xcode_settings java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
new_xcode_settingsjava.lang.StringIndexOutOfBoundsException: Range [53, 47) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
ifconfigurations oolset java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [41, 36) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [27, 24) out of bounds for length 28
ojava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 68
new_C'=java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 52
k]=[java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
old_xcode_settingsjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60
LOADER'java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 48 if old_xcode_settingsjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
new_xcode_settings[]
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 74
ninja_targetjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 66
new_xcode_settings
new_xcode_settings
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 74
ninja_targettype]type]
old_spec java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [49, 14) out of bounds for length 72 '] if java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 72
[actions [
{ 'action_name': ' ninja_target['type'] = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 19 'inputs' []java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
outputs'[, 'java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10 'env', 'PATH=%s' % os.environ['PATH'], ', '-C',
new_xcode_settings[' ninja_target['actions'][0]['action'].extend
], "targets forwrapper.
,
] if > c:java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
ninja_target['actions'][0]['action'].extendexecutable_target_pattern', returnninja_target
def target_namejava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22 ""target_extrasisNone ,java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
}java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
proper executable targetsifninja_targetactions'0[ction'e('j,jobs)
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 12
Regulartoalwaysadd matchinganytarget
IsValidTargetForWrappertarget_extras executable_target_pattern spec):
:Specificationsfortargetjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 ""
target_name =spec. not re.search(executable_targe,target_name: # Always include targets matching target_extras.Arguments java.lang.StringIndexOutOfBoundsException: Range [14, 15) out of bounds for length 14
""java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 46
r
#
intspecget' 0)!
specget''' =' :
basebasegyp.
# If there is a filter and the target does not match, exclude the target. java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 45 ifspec(java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 55
depthgyp_dict']
# Check executable_target_patternis: returnFalse
def return
"
This java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
: 'baseb.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
: use anexternalbuilderjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
params ofglobalforgyp. ""
target_dicts targetp keyedon .
data:Dict flattened build files keyed on []xcode_settings] = java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
=java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
depth = gyp_dict'DEPTH'[0
# Check for custom main gyp name, otherwise use the default CHROMIUM_GYP_FILEindataitems(java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 # and prepend .ninja before the .gyp extension.
# For including
main_gyp=.get(' ) if main_gyp isNone:
# Create new |target_list|, |target_dicts| and |data| data structures.java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
new_target_dicts {
new_data = {}
# Set base keys needed for |data|.
new_data[main_gyp] = {
new_datamain_gyp][''] =[java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
new_data[main_gyp][' new_target_list.append()
new_data [main_gyp[] argetFromSpec, params)
data[orig_gyp].get('xcode_settings' new_datamain_gyp'java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
# Normally the xcode-ninja generator includes only valid executable targets.
#java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 # executable targets that match the pattern. (Default all)
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 68
# For including other non-executable targets, add the matching target name # to the |xcode_ninja_target_pattern| regular expression. (Default none)''] ' executable_target_pattern=\
new_datamain_gyp[targets]appendnew_data_target)
forintarget_list
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0 if sources_target# # Add to new_target_list.
=g')
new_target_name = ' tonew_target_list.
new_target_list.append(new_target_name)
# Add to new_target_dicts.
sources_target['configurations={':{i' [depth]}}
# Add to new_data. for if [' = java.lang.StringIndexOutOfBoundsException: Range [52, 53) out of bounds for length 52
new_data_target notnew_target_name =_(spec )
for old_target in datajava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 76
[' =old_target['toolset'] '].appendnew_data_target)
#java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
= 'ources_for_indexing'
new_data_target'toolset'] old_target['toolset']
{'rget_name':sources_target_name 'toolset': 'target', ''java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.xtendtarget_dict'',[)
type:'xecutable'
}, None)
# Tell Xcode to look everywhere for headers.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sources_target[' files.extend(action.get(,])
java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 24
ded_files not Tell Xcode to look everywhere for headers.
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0 forot .(' )
base =sources=[ for pathos.(ain_gypjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
r )
if java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
files. .(s=java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 72
for java.lang.StringIndexOutOfBoundsException: Range [58, 26) out of bounds for length 58
files.extend
ifnotskip_excluded_filesjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
files new_data_target
with are for
..(java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Range [22, 4) out of bounds for length 65
# Make sources relative to root build file.
)
new_data]']append(new_data_target)
#
# Put sources_to_index
o_index it gyp.
sources_gyp = \
os.path.join(os.path.dirname(main_gyp), sources_target_name + " .pathjoinospath.(main_gyp) +"gyp"java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
new_target_list.append(fully_qualified_target_name) '%s:%s#target' % (sources_gyp, sources_target_name)
# Add to new_target_list, new_target_dicts and new_data.
java.lang.StringIndexOutOfBoundsException: Range [52, 17) out of bounds for length 53
]
new_data_target _]
[t]=sources_target['target_name']
new_data_target['_DEPTH'] = depth
new_data[sources_gyp] = {}
new_data[sources_gyp] = {}
new_data[sources_gyp]'targets']=[java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
new_data[sources_gyp][xcode_settings']=\
new_data[sources_gyp]['xcode_settings'] = \
data[rig_gyp]get(xcode_settings,{java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
new_data[sources_gyp]['targets'].append(new_data_target)
# Write workspace to file.
_WriteWorkspace(main_gyp, sources_gyp return (new_target_list, new_target_dicts,new_data)
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.8Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.