%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/
Upload File :
Create Path :
Current File : //lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyo

�
vפ\c@sHddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
ddlZddljZddlZddlmZddlmZddljZidd6dd6dd	6d
d6dd6d
d6dd6dd6dd6dd6dd6dd6dd6dd6Zgagagaeaejj�Zd�Z d �Z!d!�Z"d"�Z#d#e$fd$��YZ%d%e$fd&��YZ&d'�Z'd(�Z(d)�Z)d*d+�Z*d,�Z+d-�Z,d.�Z-d/�Z.d0�Z/d1�Z0d2�Z1d3�Z2dS(4i����N(t
OrderedSet(tStringIO(tGetEnvironFallbackttEXECUTABLE_PREFIXtEXECUTABLE_SUFFIXtlibtSTATIC_LIB_PREFIXs.atSTATIC_LIB_SUFFIXtSHARED_LIB_PREFIXs$!INTERMEDIATE_DIRtINTERMEDIATE_DIRs$!PRODUCT_DIR/gentSHARED_INTERMEDIATE_DIRs
$!PRODUCT_DIRtPRODUCT_DIRs$|CONFIGURATION_NAMEtCONFIGURATION_NAMEs${root}tRULE_INPUT_ROOTs
${dirname}tRULE_INPUT_DIRNAMEs	${source}tRULE_INPUT_PATHs${ext}tRULE_INPUT_EXTs${name}tRULE_INPUT_NAMEcCs!|j|�r|t|�S|S(N(t
startswithtlen(targtprefix((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytStripPrefixCscCsJtjd|�r|S|dkr2tjj|�Sd|jdd�dS(sTQuote a string such that it will be interpreted as a single argument
  by the shell.s^[a-zA-Z0-9_=.\\/-]+$twint's"'"s'"'"s'"'"'(tretmatchtgyptmsvs_emulationtQuoteForRspFiletreplace(Rtflavor((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytQuoteShellArgumentIs
cCsE|dkr+|jddtd��}nttjd|�|�S(sYTakes a preprocessor define and returns a -D parameter that's ninja- and
  shell-escaped.Rt#s\%03os-D(RtordR!tninja_syntaxtescape(tdR ((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytDefineUscCs)tjj|�\}}d|||fS(s&Adds an arch string to an output path.s%s.%s%s(tostpathtsplitext(toutputtarcht	extension((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytAddArch_stTargetcBsDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(szTarget represents the paths used within a single gyp target.

  Conceptually, building a single target A is a series of steps:

  1) actions/rules/copies  generates source/resources/etc.
  2) compiles              generates .o files
  3) link                  generates a binary (library/executable)
  4) bundle                merges the above in a mac bundle

  (Any of these steps can be optional.)

  From a build ordering perspective, a dependent target B could just
  depend on the last output of this series of steps.

  But some dependent commands sometimes need to reach inside the box.
  For example, when linking B it needs to get the path to the static
  library generated by A.

  This object stores those paths.  To keep things simple, member
  variables only store concrete paths to single files, while methods
  compute derived values like "the last output of the target".
  cCsU||_d|_d|_d|_d|_d|_d|_d|_d|_	dS(N(
ttypetNonetpreaction_stamptprecompile_stampt
actions_stamptbinarytbundletcomponent_objstcompile_depst
import_lib(tselfR0((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt__init__|s								cCs
|jdkS(s;Return true if this is a target that can be linked against.tstatic_librarytshared_library(R<R=(R0(R:((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytLinkable�scCs&|dks|jrtS|jdkS(sOReturn true if the target should produce a restat rule based on a TOC
    file.RR=tloadable_module(sshared_libraryR?(R6tFalseR0(R:R ((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytUsesToc�scCs0|j|�r|j�dS|j�p/|jS(s^Return the path, if any, that should be used as a dependency of
    any dependent action step.s.TOC(RAtFinalOutputR2(R:R ((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytPreActionInput�scCs|jp|jS(s_Return the path, if any, that should be used as a dependency of
    any dependent compile step.(R4R3(R:((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytPreCompileInput�scCs|jp|jp|jS(sKReturn the last output of the target, which depends on all prior
    steps.(R6R5R4(R:((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyRB�s(	t__name__t
__module__t__doc__R;R>RARCRDRB(((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR/es			
		tNinjaWritercBseZd%d�Zd%d�Zd�Zd%d�Zed�Zd%d�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd%d�Zd�Zd�Zd%d�Zd�Zd�Zd%d�Zd%d�Zd%d�Zd�Z e!d�Z"d�Z#d�Z$d �Z%d%d!�Z&d%d"�Z'd#�Z(d%d$�Z)RS(&c

Cs@||_||_||_||_tj|�|_||_||_||_	d|_|	dk	r�tj
jtj
j|	|��|_n|dkr�dnd|_|dkr�i|_x"dD]}
d|
|j|
<q�Wntjj||	�}tj
j||�|_tjj||	�}tj
j||�|_dS(	s�
    base_dir: path from source root to directory containing this gyp file,
              by gyp semantics, all input paths are relative to this
    build_dir: path from source root to build output
    toplevel_dir: path to the toplevel directory
    Rs.objs.otx86tx64senvironment.N(RIRJ(thash_for_rulesttarget_outputstbase_dirt	build_dirR$tWritertninjattoplevel_buildtoutput_file_nameR R1t
abs_build_dirR(R)tabspathtjointobj_exttwin_envRtcommontInvertRelativePatht
build_to_baset
base_to_build(
R:RKRLRMRNtoutput_fileRQRRR ttoplevel_dirR,tbuild_to_toptbase_to_top((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR;�s*
									
cCs�d}||krn|r-|j||�}qn|j|dd�}|j|dd�}|j|d�}nd}||kr�|jd�}|j|tjj|p�d|��}nd}|j||j�}|S(	s�Expand specials like $!PRODUCT_DIR in |path|.

    If |product_dir| is None, assumes the cwd is already the product
    dir.  Otherwise, |product_dir| is the relative path to the product
    dir.
    s
$!PRODUCT_DIRt/Rs\t.s$!INTERMEDIATE_DIRtgens$|CONFIGURATION_NAME(RtGypPathToUniqueOutputR(R)RUtconfig_name(R:R)tproduct_dirRR
tint_dirR
((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt
ExpandSpecial�s	!cCs�|jdkr-|jj|d|j�}n|jtd|�}|jtd|�}|jtd|�}|jtd|�}|jtd|�}|S(NRtconfigRRRRR(R t
msvs_settingstConvertVSMacrosRdRtgenerator_default_variables(R:R)troottdirnametsourcetexttname((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytExpandRuleVariabless	
	cCs�|rW|jdkr-tjj||�}qW|jdkrWtjj||�}qWn|jd�r�|j|�}|jdkr�tj	j
|�}n|Sd|kr�|j|�}ntj	j
tj	j|j|��S(s�Translate a gyp path to a ninja path, optionally expanding environment
    variable references in |path| with |env|.

    See the above discourse on path conversions.tmacRs$!s$|(
R Rtxcode_emulationt
ExpandEnvVarsRtExpandMacrosRRgR(R)tnormpathRURZ(R:R)tenvtexpanded((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGypPathToNinja scCs�|j|�}d}|jdkr8|d|j7}ntjj|�\}}|rj|jd|}ntjjtjj||j||��S(s%Translate a gyp path to a ninja path for writing output.

    If qualified is True, qualify the resulting filename with the name
    of the target.  This is necessary when e.g. compiling the same
    path twice for two separate output targets.

    See the above discourse on path conversions.tobjttargetRa(	RgttoolsetR(R)tsplitRpRvRURM(R:R)t	qualifiedRztpath_dirt
path_basename((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyRc4s	cCswt|�dkrdSt|�dks.|ro|j|d�}|jj|d|d|�}|jj�n|dS(s�Given a list of targets, return a path for a single file
    representing the result of building all the targets or None.

    Uses a stamp file if necessary.iis.stamptstampt
order_onlyN(RR1RcRPtbuildtnewline(R:RpttargetsR�R�((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytWriteCollapsedDependenciesXscCs'tjj|j�d}d||fS(Nis%s.%s.ninja(R(R)R*RR(R:R,toutput_file_base((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt_SubninjaNameForArchhscs�|�_|d�_|d�_|d|}t|d��_t|jdd���_t�_	t
jj�j
|��_d�_�_�j
dkr�t
jj|��_n�j
dkr�t
jj||��_�jj|�}�jjd	�j|��jjd
d|��jjdd|��jjd
d|��jjdd|��jjdd|�n�j
dkr��jj|��_t�j�dkr�t�fd��jD���_q�ng}g}d|kr�x]|dD]Q}|�jkr�j|}	|j|	j �j
��|j|	j!��qqWt"d|�}t"d|�}�j#d|�}�j#d|�}|�j_$|�j_%ng}
g}�j&||
||��j_'�jj'p�|}g}
|
|jdg�}|r��j
dkrkt�j�dkrkx-�jD]}�jj(�j)|��qEWnd}�j
dkr�t
jj*|�j+|�j,�t
jj-�j|�j,�j.�j/�}n't
jj0�j�j,�fd��}�j1�j||||||�}
g|D]}|j2�j/�r|^q}|r��j
dkslt�j�dkr�|
g|D]}�j,|�^qv7}
q�d|dGHq�n6�j
dkr�t�j�dkr�t3j4t5�}
n�jj'p�|}�j
dkr,�jj6dkr,|
�j_7|�j_8nd}|
o=|}|
sX�jj'sX|r��j9||||
|�}�jr�|j|�q�n�jr��j:|||�}n|s�dS�jS(s�The main entry point for NinjaWriter: write the build rules for a spec.

    Returns a Target object, which represents the output paths for this spec.
    Returns None if there are no outputs (e.g. a settings-only 'none' type
    target).ttarget_nameR|tconfigurationsR0tstandalone_static_libraryiRrRR,tccs$cl_tcxxtcc_hosttcxx_hosttasms$ml_ic3sH|]>}|tjttjj�j�j|��d��fVqdS(twN(R$ROt
OpenOutputR(R)RURQR�(t.0R,(R:(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pys	<genexpr>�stdependenciestactions_dependstcompile_dependstsourcescs�j|d|�S(Nt-(Rc(R)tlang(R:(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt<lambda>�ssdWarning: Actions/rules writing object files don't work with multiarch targets, dropping. (target %s)R<N(;RdRpR|R/R{tbooltgettis_standalone_static_libraryR@tuses_cppRRstIsMacBundleR t
is_mac_bundleR1txcode_settingsRit
XcodeSettingsRtMsvsSettingstGetArchRPtvariableRWtGetActiveArchstarchsRtdicttarch_subninjasRLtappendRCRDtfilterR�R2R3tWriteActionsRulesCopiesR4tsubninjaR�tVerifyMissingSourcesRSRytPrecompiledHeaderRcRVtMacPrefixHeadertWriteSourcestendswithtcollectionstdefaultdicttlistR0R7R8tWriteTargettWriteMacBundle(R:tspecRdtgenerator_flagsRhR,R�R�tdepR{t
extra_sourcestmac_bundle_dependstcompile_depends_stampt	link_depsR�tpchtftobj_outputstoR8R+tis_empty_bundle((R:sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt	WriteSpecls�	

	
				$ 				+$)$!			cs�jj��j�\�}}}�j���d���fd�}g|D]!\}}	|||	��f^qR}g|D]}
||
�^q�}|jd�f�|jd|f��j��}�jj|d|d|d|�|j|�dS(shHandle the implicit VS .idl rule for one source file. Fills |outputs|
    with files that are generated.cs�tjj�|�}tjj��\}}tjj|�\}}�j|||�||�}|r�tjj||�}n|S(N(R(R)RUR}R*Rqtrelpath(R)trelRmtbasenameRlRo(toutdirR:Rn(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytfix_path�sR�tidlflagstidlt	variablesR�N(	RitGetIdlBuildDataRdRyR1R�RPR�textend(R:RntprebuildtoutputsR+tvarstflagsR�Rptvaluetptinput((R�R:RnsX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt_WinIdlRule�s		.
cCsT|jj|�rgSg}x1td�|d�D]}|j|||�q3W|S(s3Writes rules to match MSVS's implicit idl handling.cSs
|jd�S(Ns.idl(R�(tx((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�sR�(RitHasExplicitIdlRulesOrActionsR�R�(R:R�R�R�Rn((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytWriteWinIdlFilesscCsLg}|jr%|jdg�}ng}g}d|kr`||j|d|||�7}nd|kr�||j|d||||�7}nd|kr�||j|d||�7}nd|kr�|jdkr�||j||�7}n|jd|�}|jrH|j|||�}	|j	|	|�}
|j
|
|�n|S(skWrite out the Actions, Rules, and Copies steps.  Return a path
    representing the outputs of these steps.tmac_bundle_resourcestactionstrulestcopiesR�Rtactions_rules_copies(R�R�tWriteActionst
WriteRulestWriteCopiesR R�R�tWriteMacBundleResourcestWriteMacXCassetstWriteMacInfoPlist(R:R�R�R�R�R�R�textra_mac_bundle_resourcesR�txcassetstpartial_info_plist((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�s.	

 	cCsX|jdkr#|d|j7}n|r@d||j|�fSd||j|fSdS(s�Generate and return a description of a build step.

    |verb| is the short summary, e.g. ACTION or RULE.
    |message| is a hand-written description, or None if not available.
    |fallback| is the gyp-level name of the step, usable as a fallback.
    R{s(%s)s%s %ss	%s %s: %sN(R|RgRp(R:tverbtmessagetfallback((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGenerateDescription<s
c
Cs�|j�}g}x�|D]�}d|d|jf}|jd|jdd�|�}	|jdkrx|jj|�nt}
|d}|jdd�}|r�|j	||j
�}nt|jdd	��r�d
nd}
|j|||	|
||
d|�\}}g|dD]}|j
||�^q}t|jdt��rX||d
7}nt|jdt��r�||d
7}ng|d
D]}|j
||�^q�}|jj|||d|�||7}|jj�qW|S(Ns%s_%staction_nametACTIONR�Rtactiontdepfiletninja_use_consoleitconsoletinputstprocess_outputs_as_sourcesR�t'process_outputs_as_mac_bundle_resourcesR�(tGetToolchainEnvRKR�R�R1R RitIsRuleRunUnderCygwinR@RgR[tinttWriteNewNinjaRuleRyRPR�R�(R:R�R�R�R�Rwtall_outputsR�Rptdescriptiont	is_cygwintargsR�tpoolt	rule_namet_tiR�R�R�((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�Js6
		'
$))
c"s�|j�}g}x�|D]�}d|krD|jdg�rDqnd|d|jf}	|d}
|jd|jdd�dtd|	�}|jd	kr�|jj|�nt	�t
|jd
d��r�dnd}|j|	|
|�||�\}
}
d}td
g�}x?|
D]7}x.|D]&}d||kr*|j
|�q*q*WqW�fd�}g|jdg�D]}|j||�^qz}|jdg�}t|�}|r�|d7}n|dkrt|�dkr|j|d|d|�g}g}nx�|D]�}tjj|�}tjj|�\}}tjj|�\}}g|dD]$}|j||||||�^qi}t
|jdt	��r�||7}n||k}|s�t
|jdt	��r||7}|r|j|�qng}x�|D]�}|dkr@|jd||�f�q|dkr}|j||j�} |jd|| �f�q|d
kr�|j||j�}!|jd
||!�f�q|dkr�|jd|f�q|dkr|jd||�f�qqWg|D]}|j||�^q}|jd	kre|jdtj|d�j�f�n|jj||
|j|�d|d|d|�|j |�qWqW|S(NR�trule_sourcess%s_%sR�tRULER�s%s RRR�iR�RnRlRmRoRps${%s}cs�r|jdd�S|S(Ns\R`(R(R)(R�(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytcygwin_munge�sR�iiR�R�R�R�tunique_nametimplicitR�(ssourcesrootsdirnamesextsname(!R�R�RKR�R1RkR RiR�R@R�R�tsettaddRyRR�R(R)RvR}R*RqtremoveR�RgR[thashlibtmd5t	hexdigestRPR�R�("R:R�R�R�R�R�RwR�truleRpR�R�R�R�tspecial_localstneeded_variablestargumenttvarRRR�R�t
num_inputsRnRmR�RlRoR�R�twas_mac_bundle_resourcetextra_bindingstdirname_expandedtsource_expanded((R�sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�ps�

'$

1
	
2


%	 c	Cs�g}|j�}x�|D]�}x�|dD]�}tjj|�}tjj|�d}|j||�}	|jtjj|d|�|�}
||jj|
d|	d|�7}|j	r*|
j
|jj��r�|j
|
�q�q*q*WqW|S(NtfilesitdestinationtcopyR�(R�R(R)RvR}RyRURPR�R�RR�tGetBundleContentsFolderPathR�(R:R�R�R�R�RwRR)R�tsrctdst((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��s
	"	c	Cs�g}x�tjjtd|jt|j|��D]�\}}|j|�}tj	j
|�ddkr�|jj|j�}|j
j|d|dd	d|fg�|j|�q2|j|�q2W|S(
s.Writes ninja edges for 'mac_bundle_resources'.Ri����s	.xcassetstmac_toolR�tmactool_cmdscopy-bundle-resourceR5(Rscopy-bundle-resource(RRstGetMacBundleResourcesRkR�tmapRyRgR(R)R*tIsBinaryOutputFormatRdRPR�R�(R:t	resourcestbundle_dependsR�R+trestisBinary((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��s%c	Cse|s
dSi}idd6dd6}|jj|j}x<|j�D].\}}|j|�}|rD|||<qDqDWd}	|r�|jd�}	|	|d<ng}
|
jtjj	|jj
�d��|	r�|
j|	�nttj
|�|j�}|jj�}|jd	|�}
|j|
�}
|j|jj|
d
|dd|
fd
|fg��|	S(s�Writes ninja edges for 'mac_bundle_resources' .xcassets files.

    This add an invocation of 'actool' via the 'mac_tool.py' helper script.
    It assumes that the assets catalogs define at least one imageset and
    thus an Assets.car file will be generated in the application resources
    directory. If this is not the case, then the build will probably be done
    at each invocation of ninja.Nsapp-icontXCASSETS_APP_ICONslaunch-imagetXCASSETS_LAUNCH_IMAGEs!assetcatalog_generated_info.plistsoutput-partial-info-plists
Assets.cartadditional_settingstcompile_xcassetsR�Rwtkeys(R�Rdt	iteritemsR�R1RcR�R(R)RUtGetBundleResourceFolderR!tjsontdumpsR tGetPerTargetSettingstGetSortedXcodeEnvtComputeExportEnvStringR�RPR�(R:R�R"textra_argumentstsettings_to_argtsettingstsettings_keytarg_nameR�R�R�R)t	extra_envRw((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�s>
	
	
c	Cs�tjjtd|j|j�\}}}}|s8dS|j|�}|r�|jtj	j
|��}djg|D]}t||j
�^qu�}|jj|d|dd|fg�}n|jd|�}	|j|	�}	|r|jd�}|jj|d	||g�}n|jj|j�}
ttj|
�|j
�}
|jj|j�}|jj|d
|dd|	fd|
fd
|fg�|j|�dS(s.Write build rules for bundle Info.plist files.RNt tpreprocess_infoplistR�tdefinesR'smerged_info.plisttmerge_infoplisttcopy_infoplistRwR)R5(RRstGetMacInfoPlistRkR�RyRgRcR(R)R�RUR'R RPR�R/R0tGetExtraPlistItemsRdR!R,R-R R�(R:R�R"t
info_plisttoutR9R6tintermediate_plistR&RwR)R$((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�<s6	.		c	s�jdkr��jjdd��jjdd��jjdd��jjdd	��jjd
d��jjdd
��jjdd�n�jdks�t�j�dkr��j�j�������St�������fd��jD��SdS(s.Write build rules to compile all of |sources|.thosttars$ar_hostR�s$cc_hostR�s	$cxx_hosttlds$ld_hosttldxxs
$ldxx_hosttnms$nm_hosttreadelfs
$readelf_hostRric3sC|]9}|�j�j|������d|�fVqdS(R,N(tWriteSourcesForArchR�(R�R,(RhRdtprecompiled_headert
predependsR:R�R�(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pys	<genexpr>osN(R|RPR�R RR�RGR�(R:t
ninja_fileRdRhR�RIRHR�((RhRdRHRIR:R�R�sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�^s$
!c	-Cs	g}	|jdkr�|jj|d|�}
|jj|�}|jj|�}dg|jj|�}
dg|jj|�}ns|jdkr�|jj|�}|jj|�}
|jj|�}|jj|�}|jj	|�}	|jj
||j�}}|s{d}|jdkr:|d|j7}nt
jjt
jj||j|j��}|d	}|d
}n|j|d|g�|j|d|g�|j|d
|jg�n6|jdg�}
|jdg�}|jdg�}|jdkr{t
jjdd�j�t
jjdd�j�|}t
jjdd�j�t
jjdd�j�|}n�|jdkr�t
jjdd�j�t
jjdd�j�|}t
jjdd�j�t
jjdd�j�|}n|jdg�|	}|j|dg|D]}t||j�^q&�|jdkr�|j|dt|j|��|j|dg|jj||j�D]!}t|j|�|j�^q��n|jdg�}|j�}|jdkr|jj||�}n|j|dg|D](}td|j||�|j�^q�|jdkr�|jdg�}|jj||�}|j|d g|D](}td|j||�|j�^q��n|j|�}|jdkr4xNd=d>d?d@gD]7\}}|j ||�}|r�|j!||�q�q�Wn|jd)g�}|j|dt|j|
��|j|dt|j|��|j|dt|j|��|jdkr�|j|d*t|j|
��|j|d+t|j|��n|j|d)t|j|��|j"�g} t#}!xZ|D]R}"t
jj$|"�\}#}|d,}|j%}$|dAkr~d.}%t&|_'n|d!ks�|d/kr�|jdkr�d#}%n�|d0kr�|jdkr�d1}%n�|jdkr|d2kr|jj(|�rd2}%d3}$n�|jdkr3|d%kr3d4}%n`|jdkr`|d'kr`d5}%t&|_'n3|jdkr/|d6kr/d6}%d7}$t&}!nq/|j|"�}&|j)|#|$�}'|dBk	r�t+|'|�}'n|j,|&g|'g|�}(g})|jdkr3|j-|&|'|(|%|||j�\})}'}(n|j.|'|%|&d8g|(D]\}*}*}+|+^qLd9|d:|)�| j/|'�q/W|!r�|jd;|�},|j|d<g|,D](}td|j||�|j�^q��n|j0||�|j"�| S(Cs.Write build rules to compile all of |sources|.RrR,s	$cflags_cs
$cflags_ccRRzR{Ras.c.pdbs.cc.pdbt	pdbname_ct
pdbname_cct	pchprefixtcflagstcflags_ct	cflags_cctCPPFLAGSRtCFLAGStCXXFLAGSRAt
CPPFLAGS_hosttCFLAGS_hostt
CXXFLAGS_hostR9tasmflagstrcflagstinclude_dirstincludess-Itmidl_include_dirst
midl_includestctcflags_pch_cR�t
cflags_pch_cctmtcflags_pch_objctmmtcflags_pch_objcctarflagstcflags_objctcflags_objccitcppR�tStstcc_sR�s_asm.objtobjctobjcxxtrcs.resRR�R�tresource_include_dirstresource_includes(R]R^(sccR_(R`Ra(RbRc(sccRgscxxN(1R R�t	GetCflagst
GetCflagsCtGetCflagsCCt
GetCflagsObjCtGetCflagsObjCCRitGetAsmflagstGetComputedDefinestGetCompilerPdbNameRgR|R(R)RvRURMRptWriteVariableListR�tenvironR}R'Rt
GetRcflagsRyR!R�tAdjustIncludeDirstAdjustMidlIncludeDirstGetPchBuildCommandst
GetIncludeR�R�R@R*RVtTrueR�tHasExplicitAsmRulesRcR1R.tGetObjDependenciestGetFlagsModificationsR�R�tWritePchTargets(-R:RJRdRhR�RIRHR�R,t
extra_definesRNRORPReRfRWt	pdbpath_ct
pdbpath_ccRztpdbpathR9R&R�RYRwRR[tpch_commandsRoRtincludeRdR�t
has_rc_sourceRntfilenameRVtcommandR�R+RR�R�tgchRn((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyRGts	*

8;8;&53	6	


	'					"
6
c
Cs�|s
dSx�|D]�\}}}}idd6dd6dd6dd	6|}idd6d
d6dd6dd	6}|j|�}	|j||	|d
||fg�qWdS(s-Writes ninja rules to compile prefix headers.NR^R]R_R�RaR`RcRbR�RkRlR�(R�R�(
R:RJR�R�t	lang_flagR�R�tvar_nameRtcmd((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�s"c
Cs9|jdks$t|j�dkr@|j|j||||�S|j|�}g|jD]2}|j|j||||||d|�^qY}g}|}	|js�|j||||�n|dd
kr|jr|j	d|f�|jj
||dgd	|d
|�n|jj
|	d|d
|�|SdS(s0Write out a link step. Fills out target.binary. RriR,R0R=R?Rs.TOCtsolipoR�tlipoN(sshared_librarysloadable_module(R RR�tWriteLinkForArchRPt
ComputeOutputR�R�tAppendPostbuildVariableR�R�(
R:R�RdRhR�R+R,R�Rtbuild_output((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt	WriteLink%s"$?	

c#Cs�idd6dd6dd6|d}d}t�}	t�}
t�}d	|kr�t�}xx|d	D]i}
|jj|
�}|s�qdn|j�}|r�g}|jd
kr�|jr�|jj|�r�|j}|jr^|j	|j�q^nl|jd
kr|j
r|j
g}nE|j|j�rR|
j	|j�|	j	|jd�n|jg}x:|D]/}||kre|j	|�|j
|�qeqeWn|j�}|s�||jkrd|	j	|�qdqdWng}|jr|jd
kr|j
d0�n|j||�}|d1krC|jrC|j||||�n|ddk}tjjdd�j�}|jdkr�|jj||jtd�|j|�}||}n`|jd
kr�|j|j|��}|jj||j|j||||j�\}}}||}|j|d|�|	j |�}	|r]|j|d|g�nt!|jj"|��}|jj#|j�}|r|	j	|�qnr||jdg�}|rt$|
�rd}|j%dkr�||j%7}n|j
d|�|j
d|�n|j|dt&|j|��|jdg�}|jd
kr�g|D]}|jj'||�^q\}g|D]%}dt(|j|�|j�^q�}n2g|D]%}t(d|j|�|j�^q�}t)j*j+t&|j|jdg���}|jdkr5|jj,||�}n$|jd
krY|jj,|�}n|j|d||�|} |d2kr-|j
dtj-j|�df�|j
dt)j*j.|�f�|jd
krI|}!|jr�|jj/�}!n|r|!d |7}!n|!d!7}!|!j0d"d#�}!|j
d$t)j*j.|!�f�n|jd
kr|j
d%|f�d&|kr*|jj1|�r*|d'|j2_
|j
d(d)|j2j
f�|jj3||j|d*�}"||j2j
g}|"r|j
|"�qq*q�|js ||dg}q�|d+}nY|jd
kr�|j
d%|f�|jj3||j|d*�}"|"r�||"g}q�nt$|
�r�|j
d,t)j*j4|
�f�n|j5||||d-t6|	�d.t6|�d/|�| S(3s0Write out a link step. Fills out target.binary. tlinkt
executablet
solink_moduleR?tsolinkR=R0RR�Rs.TOCRCs$ldxxtLDFLAGSRrRt	manifeststintermediatemanifesttldflagsslib/R{s-Wl,-rpath=\$$ORIGIN/%ss-Wl,-rpath-link=%stlibrary_dirss	/LIBPATH:s-Lt	librariestlibstsonameiRRas.rspR7R�tlink_file_listR5s/NOENTRYs.libt
implibflags
/IMPLIB:%ss.pdbt_notoctsolibsRR�R�(slds$ldxxN(R�R�(7RRLR�R>R R7RitIsUseLibraryDependencyInputsR8RR9RAR5R�RBR�R�R1R�R�R(RyR}R�t
GetLdflagsRgRkRyRctComputeOutputFileNameRQRxtuniont_GetWinLinkRuleNameSuffixtIsEmbedManifestt
GetDefFileRR|RRjR!RRXtuniquertAdjustLibrariesR)tEncodePOSIXShellArgumenttGetWrapperNameRtGetNoImportLibraryR{t
GetPDBNametEncodePOSIXShellListR�R�(#R:RJR�RdRhR�R,R�tcommand_suffixt
implicit_depsR�t
order_depstextra_link_depsR�R{tlinkabletnew_depstnew_deptfinal_outputRR+t
is_executabletenv_ldflagsR�tmanifest_base_nametintermediate_manifesttmanifest_filestdef_filetrpathR�tlR�t
linked_binaryR�tpdbname((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�@s							


	
%2/#		
			
	"c

s~t�fd�|jdg�D��}|ddksF|ra|ra|�j_d�j_n|ddkrV�j|��j_�jdkr��jr��jj	�jjd
|d|�qtg}�j
r�j
j|�}|r|jd|f�qn�j
r;�j
j|�j�}	|jd
|	f�n�jdks_t�j�dkr��j||�jj�jj��jj	�jjd|d|d|�qtg}
xZ�jD]O}�j||�}�j|j	|d||d|d|�|
j|�q�W�j||�jj�jj��jj	�jjd|
d|�n�j||||��j_�jjS(Nc3s6|],}|�jkr�jj|�j�VqdS(N(RLR�R>(R�R�(R:(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pys	<genexpr>�sR�R0tnoneR<RrtopenbsdtnetbsdRt
alink_thinR�t
libtool_flagstlibflagsitalinkR�(smacR�R�swin(tanyR�R{R5R0R�R R�RPR�R�tGetLibtoolflagsR�RitGetLibFlagsRyRR�R�R�R�(
R:R�RdRhR�R8R�R�R�R�R�R,R+((R:sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��sL

		$
cCs�|dd
k}|j�}|r/|d7}ng}|j||||jjd|�|r�|r�|jd|jj�f�|jj|d|d|�n|jj|d	|d|�||j_	|S(NR0R=R?s.stamptis_command_starttversiontpackage_frameworkR�R�(sshared_librarysloadable_module(
tComputeMacBundleOutputR�R{R5R�R�tGetFrameworkVersionRPR�R6(R:R�R�tis_emptyR�R+R�((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�"s


cCs:|jd|�}|jdkr6|jd|�}n|S(s:Returns the variables toolchain would set for build steps.R'R(R/R tGetMsvsToolchainEnv(R:R'Rw((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�5s
	cCs|jjdd|j�S(s>Returns the variables Visual Studio would set for build steps.s
$!PRODUCT_DIRRh(Rit
GetVSMacroEnvRd(R:R'((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�=scCs=|j}tjj|j|tjj||j�|j	|�S(s6Returns the variables Xcode would set for build steps.(
RSRRsR/R�R(R)RURZRd(R:R'RS((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR/Bs
			cCs;i}|jjd�}|r+||d<n|jd|�S(s:Returns the variables Xcode would set for postbuild steps.tCHROMIUM_STRIP_SAVE_FILER'(R�tGetPerTargetSettingR/(R:tpostbuild_settingststrip_save_file((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGetSortedXcodePostbuildEnvKs		
cCs8|j||||�}|r4|jd|f�ndS(sAAdds a 'postbuild' variable if there is a postbuild for |output|.t
postbuildsN(tGetPostbuildCommandR�(R:R�R�R+R5R�t	postbuild((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�Vsc

Csq|js!|ddks!|r%dSt||j�}tjj|dt�}|d
k	r�|jj|j	t
jjt
jj
|j|��tt
jjt
jj
|j|��|j�|dt�}n|s�dS|jdtjjd|jg��|j|j��}|ddj
g|D]}tj|�^q"�}|d	|d
}	|red|	dSd|	Sd
S(s�Returns a shell command that runs all the postbuilds, and removes
    |output| if any of them fails. If |is_command_start| is False, then the
    returned string will start with ' && '.R0R�Rtquietitcds (s && s$); G=$$?; ((exit $$G) || rm -rf %s) s&& exit $$G)t(s$ && (N(R�R!R RRstGetSpecPostbuildCommandsRR1tAddImplicitPostbuildsRdR(R)RvRUR[tinsertRXR�RZR0R�R$R%(
R:R�R+t
output_binaryR�R�RwR�tcommandstcommand_string((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�]s.!	!!	,cCsVg}x@|D]8\}}|jd|tjtjj|��f�q
Wdj|�S(s�Given an environment, returns a string looking like
        'export FOO=foo; export BAR="${FOO} bar;'
    that exports |env| to the shell.s
export %s=%s;R7(R�R$R%RRXR�RU(R:Rwt
export_strtktv((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR0�s
	'cCs/td}|jtjj||jj���S(sDReturn the 'output' (full output path) to a bundle output directory.R(RkRgR(R)RUR�R�(R:R)((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��s
c	Csu|s|d}ntjt�}t|i|jd6�i|dd6|dd6|dd6|dd	6}|jd
|j|d��}i|dd6|dd6|d
d6|dd	6}|jd�}|r�d|}n|j|d�}d|kr|d}n(|d}|dkr0t|d�}n|dkrMd|||fS|dkrad|Std|��dS(s@Compute the filename of the final output for the current target.R0R R	R?R=RR<RR�tproduct_prefixRtSHARED_LIB_SUFFIXRRtproduct_extensionRatproduct_nameR�Rs%s%s%sR�s%s.stampsUnhandled output type %sN(sstatic_librarysloadable_modulesshared_librarys
executable(RRktCalculateVariablesR R�Rt	Exception(	R:R�R0tdefault_variablestDEFAULT_PREFIXRtDEFAULT_EXTENSIONR-R{((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��s<



	c

Cs|d}|jdkrA|jj|j|j�}|rA|Sn|dkrz|jdkrz|dkrz|jj�}n|j||�}|dkr�d|kr�t	j
j|d|�}|j|�Sddg}|jdkr|jd	kr|ddg7}n.|jdkr5|jd	kr5|dg7}n|dk	r�d
}|jd	krut	j
jd
d|j�}nt	j
j|t
||��S||ks�|jr�|S|dkr�d}	|jd	kr�t	j
jdd|j�}	nt	j
j|	|�S|j|d
t�SdS(s2Compute the path for the final output of the spec.R0RRrR<R�R=R?ReR{R,s%sRR~N(sstatic_librarys
executablesshared_librarysloadable_module(R Rit
GetOutputNameRdRgR1R�tGetExecutablePathR�R(R)RUR|R.R�RcR@(
R:R�R,R0toverrideR�R)ttype_in_output_roottarchdirtlibdir((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��s>
	
cCs2|dkrg}n|j|dj|��dS(NR7(R1R�RU(R:RJRtvalues((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyRx�s	cCs�|jdkrag|D]'}|jj||jd|j�^q}|jj|d|j�}nO|jdkr�g|D]}tjj||�^qw}tjj||�}n|j}	|j	dkr�|	d|j	7}	n|	d|7}	t
jdd|	�}	dd	d
ddg}
d
djt
t
j|
��d}
t
j|
dd|�}d}d}g|D]}|j||j�^qc}|jdkr|	d}|r�dn
d|j}
|r�|jj||j�}ntjj|�}dtj||
}n6|j|�}tjj|�}d|j||}|jj|	||d|dtd|d|d|�|jj�|	|fS(s�Write out a new ninja "rule" statement for a given command.

    Returns the name of the new rule, and a copy of |args| with variables
    expanded.RRhRrR{Ras
[^a-zA-Z0-9_]R�s${root}s
${dirname}s	${source}s${ext}s${name}s(?!t|t)s\$s.$unique_name.rspRR7s%%s gyp-win-tool action-wrapper $arch scd %s; R�trestatR�trspfiletrspfile_contentN(R RiRjR[RdRRsRtRpR|RtsubRURR%R1RgRZtBuildCygwinBashCommandLineRtEncodeRspFileListtsysR�R0RXR�RPRRR�(R:RpR�R�R�RwR�R�RR�tprotectRRtrun_inR�((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��sF1	(	#(
	

N(*RERFR1R;RgRqRyRRcR�R�R�R�R�R�R�R�R�R�R�R�R�R�RGR�R�R�R�R�R�R�R/R�R@R�R�R0R�R�R�RxR�(((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyRH�sJ#	$		�		
	"		&	u			.	"	�		�	3				$	
	2-	cCs�tjj|�}|dkr�|jdd�|jdd�|jdtd�|jdtd�dd	ljj}t|d
g�a	t|dg�a
t|dg�an7|d
krotjj
}|jdd
�d|d|d<d|d<d|d|d<d|d<d|d|d<dd	ljj}t|d
g�a	t|dg�a
tjj||�ny|}|dkr�d}n|jd|�|jdd�|jdtjjdd��|jdtjjdd��d	S(sDCalculate additional variables for use in the build (called by gyp).RrtOSR�s.dylibtSHARED_LIB_DIRRtLIB_DIRi����Nt+generator_additional_non_configuration_keyst"generator_additional_path_sectionst!generator_extra_sources_for_rulesRRaR�RRRR<RR	R=tandroidtlinuxs.sos
$!PRODUCT_DIRRRz(RRXt	GetFlavort
setdefaultRktgyp.generator.xcodet	generatortxcodetgetattrRR
RtMSVSUtiltTARGET_TYPE_EXTtgyp.generator.msvstmsvsRtCalculateCommonVariablesR(R)RU(R�tparamsR txcode_generatortextstmsvs_generatortoperating_system((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR�:sL		

			cCs\tjj|djpd�}|jdi�jdd�}tjjtjj||��S(sEReturns the path from the toplevel_dir to the build output directory.toptionsRaR�t
output_dirR?(R(R)R�tgenerator_outputR�RvRU(Rt
generator_dirR"((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytComputeOutputDirnscCsO|dj}tjjtjj|t|�d��}i|d6|d6adS(sBCalled by __init__ to initialize generator values based on params.R!tgypfilesttopleveltqualified_out_dirN(R]R(R)RvRUR%tgenerator_filelist_paths(RR'R(((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytCalculateGeneratorInputInfo{s
R�cCstjj|�t||�S(s;Open |path| for writing, creating directories if necessary.(RRXtEnsureDirExiststopen(R)tmode((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��scCs(|j|d�}|r$|d|S|S(NRR7(R�(R�twrapperstprogtwrapper((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytCommandWithWrapper�sc
s�ttjjdd��}|r%|Stjdkr�ddl�d�jf�fd��Y}|�}�j|�|_	�j
jj�j
|��td	|jd
d�}td	ttjjd
d���}t||�Stjjd�r}tjjd�rytd��c}tjd�}xJ|D]B}|j|�}|sKq*ntd	t|jd	��dd�SWWdQXnd	Stjdkr�y7ttjdddg��}	td	|	dd�SWq�d	SXnd	SdS(s6Returns a best-guess for a number of concurrent links.tGYP_LINK_CONCURRENCYitwin32tcygwini����NtMEMORYSTATUSEXc
szeZd�jfd�jfd�jfd�jfd�jfd�jfd�jfd�jfd�jfg	ZRS(	tdwLengthtdwMemoryLoadtullTotalPhystullAvailPhystullTotalPageFiletullAvailPageFiletullTotalVirtualtullAvailVirtualtsullAvailExtendedVirtual(RERFtc_ulongtc_ulonglongt_fields_((tctypes(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR5�siiiitGYP_LINK_CONCURRENCY_MAXi Rs
/proc/meminfos^MemTotal:\s*(\d*)\s*kBiitdarwintsysctls-ns
hw.memsizei(swin32scygwini@Iii@(R�R(RyR�RtplatformRBt	StructuretsizeofR6twindlltkernel32tGlobalMemoryStatusExtbyreftmaxR8tminRR)texistsR,RtcompileRtgroupt
subprocesstcheck_output(
t	pool_sizeR5tstatt	mem_limitthard_captmeminfotmemtotal_retlineRtavail_bytes((RBsX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGetDefaultConcurrentLinks�s:
	$

.cCs|r
dSdS(swReturns the suffix used to select an appropriate linking rule depending on
  whether the manifest embedding is enabled.t_embedR((tembed_manifest((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyR��scs=�fd�}t��}ttjjdd��dk}d|j�}dtj|f}||dd�}|jd	|d
|d|dd
dddt	dd�|jd|d
|d|dd
dddt	dd�dtj|f}||dd�}|jd|d
d|j�d|dd
dddd�dS(s7Adds link rules for Windows platform to |master_ninja|.csFidd6dd6|}ditjd6|d6|d6|d	6�d
6S(Nt1texet2tdlls�%(python)s gyp-win-tool link-with-manifests $arch %(embed)s %(out)s "%(ldcmd)s" %(resname)s $mt $rc "$intermediatemanifest" $manifeststpythonR?tldcmdtresnametembed(RR�(RdR?tbinary_typet
resource_name(R^(sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytFullLinkCommand�s
tGYP_USE_SEPARATE_MSPDBSRVt0isLINK%s(DLL) $binarys\%s gyp-win-tool link-wrapper $arch %s $ld /nologo $implibflag /DLL /OUT:$binary @$binary.rsps$binaryRbR�R�R�Rs$binary.rspRs$libs $in_newline $ldflagsRR�t	link_poolR�sK%s gyp-win-tool link-wrapper $arch %s $ld /nologo /OUT:$binary @$binary.rspR`R�sLINK%s $binarys$in_newline $libs $ldflagsN(
R�R�R(RyR�tupperRR�RR(tmaster_ninjaR^Ritrule_name_suffixtuse_separate_mspdbsrvtdlldesctdllcmdtexe_cmd((R^sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt_AddWinLinkRules�s8
!cGCs�|d}tjj|�}|jdi�}tjjtjjt|�|��}tjj|j	|�}	t
tjj|	d��}
tj|
dd�}tjj
||	�|dkr�d}d}
d}d	}d
}n*d}d}
d
}d}d}d}d}d}d}d}d}d}d}d}d}d}d}tjj|d�\}}}||jdg�}tjj||j	�} i}!x|D]\}"}#|"dkr�tjj| |#�}n|"dkr�tjj| |#�}n|"dkr-tjj| |#�}
|
jd�r-|
}q-n|"dkrQtjj| |#�}n|"dkr{tjj| |#�}|#}n|"dkr�tjj| |#�}|#}n|"dkr�tjj| |#�}n|"dkr�tjj| |#�}n|"dkrtjj| |#�}n|"d kr5tjj| |#�}n|"d!krYtjj| |#�}n|"d"kr}tjj| |#�}n|"jd#�r�tjj| |#�|!|"td#� <q�q�Wxttjj�D]c\}"}#|"j�jd#�r�|"td#� }$tjd$d%|$�}$tjj| |#�|!|$<q�q�W|dkr-g|D]}%||%d&|^qA}&d}'|jd'd�s�tjj|&|�}'ntjj|	||'t
�}(x�|(j�D]o\})}*|r�|}*ntd|!t|*d��}+|r|+|)d(krd)nd*7}+n|jd+|)|+�q�Wntd,dg|
�}
|jdtd|!|
��td-dg|�}|jd.td|!|��|dkr|jd/|�|jd0d1�|jd|�|jd2d3�|jd4d5�|jd6d7�|jd8d9�n�|jd/td:|!|��|jd;td:|!|��|jdtd<dg|��|d=kr�|jdtd>dg|��|jdtd?d!g|��ntr.|s�|
}n|s�|}n|jd@tdAg|��|jdBtdCg|��|jdDtdEg|��tdFg|�}tdGg|�}dH|kru|ru|j dH|
�}ndI|kr�|r�|j dI|�}n|jdJtd|!|��|jdKtd|!|��|dkr�|jdL|�q.|jdLtd:|!|��|jdMtd:|!|��n|j!�|j"dNdOt#��|j!�|dkrjdPndQ},|dkr�|j$ddRdSdTdUdVdWdX|,�|j$dYdRdSdTdZ�|j$d.dRd[dTd\dVdWdX|,�n�d]d^}-d]d_}.|j$ddRdSdT|-d`dadbdcdX|,�|j$d.dRd[dT|.d`dadbdddX|,�|j$d0dRdedTdft%j&�|j$d2dRdgdTdht%j&�|j$didRdjdTdkt%j&�|d=kr�
|dkr�
|j$dldRdmdTdn�|j$dodRdmdTdp�dqidrds6dtdu6}/|j$dsdRdvdwt'dT|/idxdy6d`dzdbd{d|dN�|j$d}dRd~dwt'dT|/idxdy6d`dzdbdd|dN�|j$d�dRd�dTd�d|dN�n�|dkr|j$dldRd�dTd�t%j&d`dadbd��t(|d�t'�t(|d�t)�n�|j$d�dRd�dTd�dVdWdX|,�|j$d�dRd�dTd�dVdWdX|,�|j$dldRd�dTd��|j$d�dRd�dTd��|j$d�dRd�dTd�id�du6�d�}0d�i|0ds6d�du6}/d�}1|j$dsdRd�dwt'dT|/i|1dy6d�d�6d`dzdbd�d|dN�|j$d�dRd�dwt'dT|0i|1dy6d�d�6d`dzdbd�d|dN�|j$d}dRd�dwt'dT|/i|1dy6d�d�6d`dzdbd�d|dN�|j$d�dRd�dwt'dT|0i|1dy6d�d�6d`dzdbd�d|dN�|j$d�dRd�dTd�d|dN�|j$d�dRd�dTd��|j$d�dRd�dTd��|j$d�dRd�dTd��|j$d�dRd�dTd��|j$d�dRd�dTd��|j$d�dRd�dTd��|dkr�
|j$d�dRd�dTd�t%j&�|j$d�dRd�dTd�t%j&�n2|j$d�dRd�dTd��|j$d�dRd�dTd��|j!�t*�}2xN|d�D]B}x9tjj+||tjj|��D]}3|2j,|3�qRWq'Wt*�}4i}5i}6t*�}7t*�}8x@|D]8}%tjj|%�\}}9}:||jdg�};||%}<|d=krtj-j.|||<�ntjj/||j	t)�}tjj0||9|:�}=t1j2|=�j3�}>tjj4|�}?d�}@|:d�kr|@d�|:7}@ntjj|@|?|9d��}At5�}Bt6|>|5|?||B|	|A|d�|j	�}C|Cj7|<||�}3|Bj8�dkrFt
tjj|	|A���}D|Dj9|Bj:��WdQX|Bj;�|j<|A�n|3r�|9|3j=�kr�|<d�d�kr�|6j>|9g�j?|3�n|3|5|%<|%|2kr�|4j,|3j=��n|8j,|9�q�|7j,|9�q�W|6r8|j!�|j@d��xA|6D]6}E|jA|Ed�g|6|ED]}F|Fj=�^q�q�Wn|7|8}7|7r�|j!�|j@d��x'tB|7�D]}9|jA|9d��qlWn|4r�|j!�|jAd�d�tC|4��|jD|jd�d���n|
j;�dS(�NR!R�sbuild.ninjatwidthixRslib.exetUNSETslink.exes$ldRBR�sc++s$ccs$cxxs$cc_hosts	$cxx_hostRERFitmake_global_settingstARsAR.hosttCCsclang-cltCXXsCC.hostsCXX.hosttLDsLD.hosttNMsNM.hosttREADELFsREADELF.hostt_wrappers\.HOST$s.hostR�t"ninja_use_custom_environment_filesRIs -m32s -m64tcl_t	CC_targett
CXX_targetR�RCR�smidl.exeRmsrc.exetml_x86sml.exetml_x64sml64.exetmtsmt.exetLINKRDt	AR_targetRrt	NM_targettREADELF_targettar_hosttAR_hosttnm_hosttNM_hosttreadelf_hosttREADELF_hosttCC_hosttCXX_hosts$(CC)s$(CXX)R�R�tld_hostt	ldxx_hostRltdepthtmsvctgccR�sCC $outR�sU$cc -MMD -MF $out.d $defines $includes $cflags $cflags_c $cflags_pch_c -c $in -o $outR�s$out.dtdepsRjsE$cc $defines $includes $cflags $cflags_c $cflags_pch_c -c $in -o $outsCXX $outsX$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_cc $cflags_pch_cc -c $in -o $outsninja -t msvc -e $arch sH-- $cc /nologo /showIncludes /FC @$out.rsp /c $in /Fo$out /Fd$pdbname_c sJ-- $cxx /nologo /showIncludes /FC @$out.rsp /c $in /Fo$out /Fd$pdbname_cc Rs$out.rspRs$$defines $includes $cflags $cflags_cs%$defines $includes $cflags $cflags_ccsIDL $insd%s gyp-win-tool midl-wrapper $arch $outdir $tlb $h $dlldata $iid $proxy $in $midl_includes $idlflagssRC $insU%s gyp-win-tool rc-wrapper $arch $rc $defines $resource_includes $rcflags /fo$out $inR�sASM $outsS%s gyp-win-tool asm-wrapper $arch $asm $defines $includes $asmflags /c /Fo $out $inR�sAR $outs'rm -f $out && $ar rcs $arflags $out $inR�s(rm -f $out && $ar rcsT $arflags $out $ins�if [ ! -e $lib -o ! -e $lib.TOC ]; then %(solink)s && %(extract_toc)s > $lib.TOC; else %(solink)s && %(extract_toc)s > $lib.tmp && if ! cmp -s $lib.tmp $lib.TOC; then mv $lib.tmp $lib.TOC ; fi; fis;$ld -shared $ldflags -o $lib -Wl,-soname=$soname %(suffix)sR�sI{ $readelf -d $lib | grep SONAME ; $nm -gD -f p $lib | cut -f1-2 -d' '; }textract_tocsSOLINK $libRs@$link_file_listtsuffixs$link_file_lists<-Wl,--whole-archive $in $solibs -Wl,--no-whole-archive $libsR�R�sSOLINK(module) $libs3-Wl,--start-group $in -Wl,--end-group $solibs $libsR�s	LINK $outsH$ld $ldflags -o $out -Wl,--start-group $in -Wl,--end-group $solibs $libssLIB $outsU%s gyp-win-tool link-wrapper $arch False $ar /nologo /ignore:4221 /OUT:$out @$out.rsps$in_newline $libflagsR^Rks	OBJC $outs[$cc -MMD -MF $out.d $defines $includes $cflags $cflags_objc $cflags_pch_objc -c $in -o $outRlsOBJCXX $outs^$cxx -MMD -MF $out.d $defines $includes $cflags $cflags_objcc $cflags_pch_objcc -c $in -o $outsLIBTOOL-STATIC $out, POSTBUILDSsarm -f $out && ./gyp-mac-tool filter-libtool libtool $libtool_flags -static -o $out $in$postbuildsR�sLIPO $out, POSTBUILDSs6rm -f $out && lipo -create $in -output $out$postbuildsR�sSOLIPO $out, POSTBUILDSs\rm -f $lib $lib.TOC && lipo -create $in -output $lib$postbuilds &&%(extract_toc)s > $lib.TOCs]{ otool -l $lib | grep LC_ID_DYLIB -A 5; nm -gP $lib | cut -f1-2 -d' ' | grep -v U$$; true; }s($ld %(type)s $ldflags -o $lib %(suffix)ss�if [ ! -e $lib -o ! -e $lib.TOC ] || otool -l $lib | grep -q LC_REEXPORT_DYLIB ; then %(solink)s && %(extract_toc)s > $lib.TOC; else %(solink)s && %(extract_toc)s > $lib.tmp && if ! cmp -s $lib.tmp $lib.TOC; then mv $lib.tmp $lib.TOC ; fi; fis@$link_file_list$postbuildssSOLINK $lib, POSTBUILDSs-sharedR0s$in $solibs $libstsolink_notocsSOLINK(module) $lib, POSTBUILDSs-bundletsolink_module_notocsLINK $out, POSTBUILDSs1$ld $ldflags -o $out $in $solibs $libs$postbuildsR8sPREPROCESS INFOPLIST $outsT$cc -E -P -Wno-trigraphs -x c $defines $in -o $out && plutil -convert xml1 $out $outR;sCOPY INFOPLIST $ins:$env ./gyp-mac-tool copy-info-plist $in $out $binary $keysR:sMERGE INFOPLISTS $ins-$env ./gyp-mac-tool merge-info-plist $out $inR(sCOMPILE XCASSETS $ins.$env ./gyp-mac-tool compile-xcassets $keys $inRsMACTOOL $mactool_cmd $ins1$env ./gyp-mac-tool $mactool_cmd $in $out $binaryR�s"PACKAGE FRAMEWORK $out, POSTBUILDSsG./gyp-mac-tool package-framework $out $version$postbuilds && touch $outR�s
STAMP $outs%s gyp-win-tool stamp $outRs
COPY $in $outs)%s gyp-win-tool recursive-mirror $in $outs${postbuilds}touch $outsrm -rf $out && cp -af $in $outtbuild_filesRzR{Ras.ninjaR]R|sShort names for targets.tphonys(Empty targets (output for completeness).talltdefault_target(ERRXRR�R(R)RvRUR%R]R�R$ROtCopyToolR1tParseQualifiedTargetRYR�RRyR*tlowerRRRtExtractSharedMSVSSystemIncludestGenerateEnvironmentFilesR1R!R�Rt$generator_supports_multiple_toolsetsRR�R�R\RRR�RRtR@Rt
AllTargetsRRstMergeGlobalXcodeSettingsToSpectRelativePathtQualifiedTargetR	R
RRmRRHR�ttelltwritetgetvaluetcloseR�RBRR�tcommentR�tsortedR�tdefault(Gttarget_listttarget_dictstdataRRdR!R R�RNRQtmaster_ninja_fileRnRBR�R�RCR�RDR�R�R�R�tcc_host_global_settingtcxx_host_global_settingtclang_clRER�RFR�t
build_fileR�Rwt
build_to_rootR.tkeyR�t
key_prefixtqualified_targettconfigstshared_system_includestcl_pathsR,R)R�R�t
cc_commandtcxx_commandtmtime_preserving_solink_basetsolink_baset
solink_suffixtall_targetsR{R�RLttarget_short_namestempty_target_namestnon_empty_target_namesRpR|tthis_make_global_settingsR�tqualified_target_for_hashRKt	base_pathRzR\tninja_outputtwriterRJt
short_nameR�((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGenerateOutputForConfigs0
					+ "									








				

			
"



(



cCse|d}xT|D]L}tjj|jd|�}dd|g}d||fGHtj|�qWdS(NR!R?RPs-CsBuilding [%s]: %s(R(R)RUR]RRt
check_call(R�R�RR!Rhtbuilddirt	arguments((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytPerformBuild:	s

cCsEtjtjtj�|\}}}}}t|||||�dS(N(tsignaltSIGINTtSIG_IGNR�(targlistR�R�R�RRd((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytCallGenerateOutputForConfigC	sc
Csotjj|�}|jdi�jdd�}tjj|�dkr~tj||�\}}tj	||t
�\}}n|r�t|||||�n�||ddj�}|drDy\t
jt|��}g}x*|D]"}|j|||||f�q�W|jt|�Wqktk
r@}	|j�|	�qkXn'x$|D]}t|||||�qKWdS(NR�RhRiR�tparallel(RRst&CloneConfigurationForDeviceAndEmulatorR�R1RXRRtShardTargetstInsertLargePdbShimsRkR�R)tmultiprocessingtPoolRR�RR�tKeyboardInterruptt	terminate(
R�R�R�Rtuser_configtconfig_namesR�targlistsRdte((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pytGenerateOutputL	s2		





(3R�RR	R,R�tos.pathR(RR�RRRRt
gyp.commonRtgyp.msvs_emulationtgyp.MSVSUtilRtgyp.xcode_emulationt	cStringIORRtgyp.ninja_syntaxR$RkRR
RR1R)RXtCrossCompileRequestedR�RR!R'R.tobjectR/RHR�R%R*R�R1R\R�RtR�R�R�R�(((sX/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/ninja.pyt<module>s~

			
	k�����o	4	
			7		1	��8				

Zerion Mini Shell 1.0