ó
îRac @ sj d Z d d l Z d d l Z d d l Z d d l Z d d l Z d „ Z d „ Z d „ Z
d „ Z d S( sÅ Xcode-ninja wrapper project file generator.
This updates the data structures passed to the Xcode gyp generator to build
with ninja instead. The Xcode project itself is transformed into a list of
executable targets, 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.
iÿÿÿÿNc C s‘ t j j | ƒ \ } } | d } | d } | j rP t j j | j | ƒ } n y t j | ƒ Wn+ t k
rŽ } | j t j k r ‚ q n Xd d } xa | | g D]S } t j j t j j | ƒ ƒ d d }
t
j j j
d |
ƒ }
| d |
7} q¦ W| d 7} t j j | d
ƒ } y8 t | d ƒ # } | j ƒ }
|
| k rMd SWd QXWn t k
rgn Xt | d
ƒ } | j | ƒ Wd QXd S( s8 Create a workspace to wrap main and sources gyp paths. s .xcworkspacet optionss'
s
i s
.xcodeprojs group:s$
s
s contents.xcworkspacedatat rNt w( t ost patht splitextt generator_outputt joint makedirst OSErrort errnot EEXISTt basenamet xmlt saxt saxutilst quoteattrt opent readt IOErrort write( t main_gypt sources_gypt paramst build_file_roott build_file_extt workspace_pathR t et
output_stringt gyp_namet namet workspace_filet
input_filet input_stringt output_file( ( sm /opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/xcode_ninja.pyt _WriteWorkspace s6
&
c C s d# } d } | rd | d } t j j | j t j j j | ƒ ƒ } | j d i ƒ j d d ƒ } n | j d ƒ } | j d | ƒ } | j d ƒ } i } | | d <| | d <| rÁ | | d