%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/
Upload File :
Create Path :
Current File : //lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.pyc

�
vפ\c@saddlZddlZddljjZddlZddlZddlZidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6Ze	Z
d#d$gZgZgZ
d%Zd&Zid'd(6d)d*6d+d,6Zd-�Zd.�ZiZiZd/efd0��YZd1�Zd2�ZdS(3i����NtandroidtOSttEXECUTABLE_PREFIXtEXECUTABLE_SUFFIXtlibtSTATIC_LIB_PREFIXtSHARED_LIB_PREFIXs.atSTATIC_LIB_SUFFIXs.sotSHARED_LIB_SUFFIXs$(gyp_intermediate_dir)tINTERMEDIATE_DIRs$(gyp_shared_intermediate_dir)tSHARED_INTERMEDIATE_DIRtPRODUCT_DIRs$(builddir)/lib.$(TOOLSET)tSHARED_LIB_DIRs$(obj).$(TOOLSET)tLIB_DIRs%(INPUT_ROOT)stRULE_INPUT_ROOTs%(INPUT_DIRNAME)stRULE_INPUT_DIRNAMEs$(RULE_SOURCES)tRULE_INPUT_PATHs$(suffix $<)tRULE_INPUT_EXTs$(notdir $<)tRULE_INPUT_NAMEs$(GYP_CONFIGURATION)tCONFIGURATION_NAMEtandroid_unmangled_nametaosp_build_settingss�# "gyp_all_modules" is a concatenation of the "gyp_all_modules" targets from
# all the included sub-makefiles. This is just here to clarify.
gyp_all_modules:
s/# This file is generated by gyp; do not edit.

tSTATIC_LIBRARIEStstatic_librarytSHARED_LIBRARIEStshared_librarytEXECUTABLESt
executablecCstjj|�dkS(Ntcxx(tmaketCOMPILABLE_EXTENSIONStget(text((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytIsCPPExtensionOscCs|S(s�Convert a path to its source directory form. The Android backend does not
     support options.generator_output, so this function is a noop.((tpath((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyt	SourceifySstAndroidMkWritercBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zddejed�Zdd�Zd�Zd�ZRS(s�AndroidMkWriter packages up the writing of one target-specific Android.mk.

  Its only real entry point is Write(), and is mostly used for namespacing.
  cCs
||_dS(N(tandroid_top_dir(tselfR&((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyt__init__ksc
Cs�tjj|�t|d�|_|jjt�||_||_||_	|d|_
|d|_|d|_|j
|�\}
}g}g}
tj|jd�|_|j|�|_|j|�\|_|_|j|�|_|_|jd�|jd|j�|jd|j�|j|jkrQ|jd	|j�n|jd
|j�|jdkr�|jd�|jd
�n-|	dkr�|jd�|jd|	�n|jdkr�|jd�n
|jd�|jd�|j�g|
D] }|ddkr|d^q}|jd�|j|ddt�d|krw|j|d|
|�nd|kr�|j|d|
|�nd|kr�|j|d|�n|j|ddt�|jd�|jd�|j�|jdg�s|
r(|j|||
�n|j |||
|||�d|jft!|<|jd kr|d!|jft"|<n%|jd"kr�d#|jft"|<n|jj#�|jS($s�The main entry point: writes a .mk file for a single target.

    Arguments:
      qualified_target: target we're generating
      relative_target: qualified target name relative to the root
      base_path: path relative to source root we're building in, used to resolve
                 target-relative paths
      output_filename: output .mk file name to write
      spec, configs: gyp info
      part_of_all: flag indicating this target is part of 'all'
      write_alias_target: flag indicating whether to create short aliases for
                          this target
      sdk_version: what to emit for LOCAL_SDK_VERSION in output
    twttarget_namettypettoolsettGYPsinclude $(CLEAR_VARS)
sLOCAL_MODULE_CLASS := sLOCAL_MODULE := sLOCAL_MODULE_STEM := sLOCAL_MODULE_SUFFIX := thostsLOCAL_IS_HOST_MODULE := trues&LOCAL_MULTILIB := $(GYP_HOST_MULTILIB)is;LOCAL_MODULE_TARGET_ARCH := $(TARGET_$(GYP_VAR_PREFIX)ARCH)sLOCAL_SDK_VERSION := %ssOgyp_intermediate_dir := $(call local-intermediates-dir,,$(GYP_HOST_VAR_PREFIX))sJgyp_intermediate_dir := $(call local-intermediates-dir,,$(GYP_VAR_PREFIX))s[gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared,,,$(GYP_VAR_PREFIX))R#is%# Make sure our deps are built first.tGYP_TARGET_DEPENDENCIESt
local_pathifytactionstrulestcopiestGYP_GENERATED_OUTPUTSs9# Make sure our deps and generated files are built first.sTLOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)tsourcesRtstaticRtshared($tgyptcommontEnsureDirExiststopentfptwritetheadertqualified_targettrelative_targetR#ttargetR+R,tComputeDepstMODULE_CLASSESR t
android_classtComputeAndroidModuletandroid_moduletComputeOutputPartstandroid_stemtandroid_suffixt
ComputeOutputtoutputt
output_binarytWriteLnt	WriteListtTruetWriteActionst
WriteRulestWriteCopiestWriteSourcestWriteTargetttarget_outputsttarget_link_depstclose(R'R?R@t	base_pathtoutput_filenametspectconfigstpart_of_alltwrite_alias_targettsdk_versiontdepst	link_depst
extra_outputst
extra_sourcestxttarget_dependencies((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytWritenst			








-




cCs!x|D]}tjd|j|df�}|jd|d�|d}|d}t�}x^|D]V}	|	jd�s�d|j|	fGHntjj	|	�d}
|
rf|j
|
�qfqfWt|jd	t
��r�||7}ntjj|d
�}d|krd|d}n
d|}t|�dkrRd
dj|�d|}nd|j}
|
|}tj|j|d��}|jd|�|jd|�|jd|�|jd|�|jd|�xL|D]D}|jd�r�d|kr�tjjd||jf��q�q�WxL|D]D}|jd�r0d|kr0tjjd||jf��q0q0W|jd|djt|j|��f�|jd|�|jd|�x2|dD]&}|jd|j|�|f�q�W||7}|j�qW|j�dS(s]Write Makefile code for any 'actions' from the gyp input.

    extra_sources: a list that will be filled in with newly generated source
                   files, if any
    extra_outputs: a list that will be filled in with any outputs of these
                   actions (used to make other pieces dependent on these
                   actions)
    s%s_%staction_names### Rules for action "%s":tinputstoutputst$sAWARNING: Action for target "%s" writes output to local path "%s".itprocess_outputs_as_sourcestactiontmessagesGyp action: %s ($@)smkdir -p %st s; scd $(gyp_local_path)/%s; s#%s: gyp_local_path := $(LOCAL_PATH)s'%s: gyp_var_prefix := $(GYP_VAR_PREFIX)s>%s: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))sL%s: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))s;%s: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))s$(s8Action input filename "%s" in target %s contains a spaces9Action output filename "%s" in target %s contains a spaces!%s: %s $(GYP_TARGET_DEPENDENCIES)s	@echo "%s"s	$(hide)%s
is%s: %s ;N(RtStringToMakefileVariableR@RMtsett
startswithRAtosR#tsplittaddtintR tFalseR8R9tEncodePOSIXShellListtlentjointQuoteSpacestLocalPathifytGypErrortmap(R'R1RbRaRktnameRgRhtdirstouttdirtcommandt	quiet_cmdt	cd_actiontmain_outputtinputRK((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRP�sh	


	




				
	
		#$
cCs�t|�dkrdSx_|D]W}t|jdg��dkrGqntjd|j|df�}|jd|�|jd|�|jd�}x�|jdg�D]�}tjj|�\}}	tjj	|	�\}
}g|d	D]}|j
||
|�^q�}
t�}xZ|
D]R}|jd
�sGd|j
|fGHntjj|�}|r|j|�qqW||
7}t|jdt��r�|j|
�ng}xU|d
D]I}|j
||
|�}d|kr�|jd|�}n|j|�q�Wtjj|�}d|j}||}|rPddj|�d|}nt|j|
�}
|
d}|jd|�|jd|�|jd|�|jd|�|jd|�|j|�}|r|d7}|djg|D]}|j|�^q��7}n|jd||f�|jd|�x)|
dD]}|jd||f�qEW|j�q�WqW|j�dS(sDWrite Makefile code for any 'rules' from the gyp input.

    extra_sources: a list that will be filled in with newly generated source
                   files, if any
    extra_outputs: a list that will be filled in with any outputs of these
                   rules (used to make other pieces dependent on these rules)
    iNtrule_sourcess%s_%st	rule_names
### Generated for rule "%s":s# "%s":RgRhRis:WARNING: Rule for target %s writes output to local path %sRjRks$(RULE_SOURCES)scd $(gyp_local_path)/%s; smkdir -p %sRms; s#%s: gyp_local_path := $(LOCAL_PATH)s'%s: gyp_var_prefix := $(GYP_VAR_PREFIX)s>%s: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))sL%s: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))s;%s: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))s!%s: %s $(GYP_TARGET_DEPENDENCIES)s	%s
is%s: %s ;(RwR RRnR@RMRqR#RrtsplitexttExpandInputRootRoRpRAtdirnameRsRtRutextendtreplacetappendR8R9RvRxR|Rz(R'R2RbRatruleR}Rgtrule_sourcetrule_source_dirnametrule_source_basenametrule_source_roottrule_source_extRRhR~R�t
componentst	componentR�R�R�tmain_output_depstfRK((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRQFsx
)	

		


			
2	c	Csn|jd�tj|jd�}g}x�|D]�}x�|dD]�}|djd�ssd|j|dfGHnt|j|��}tj	j
|�d}t|jtj	j|d|���}|jd||f�|jd	�|jd
�|jd�|j�|j|�qAWq0W|jd|d
jt
tj|��f�|jd|�|j�dS(s�Write Makefile code for any 'copies' from the gyp input.

    extra_outputs: a list that will be filled in with any outputs of this action
                   (used to make other pieces dependent on this action)
    s### Generated for copy rule.t_copiestfilestdestinationRis?WARNING: Copy rule for target %s writes output to local path %sis*%s: %s $(GYP_TARGET_DEPENDENCIES) | $(ACP)s	@echo Copying: $@s	$(hide) mkdir -p $(dir $@)s	$(hide) $(ACP) -rpf $< $@s%s = %sRms$(%s)N(RMRRnR@RpRAR$RzRqR#RrRxR�R|Ry(	R'R3RatvariableRhtcopyR#tfilenameRK((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRR�s.

	



 c	Cs�xKt|j��D]7\}}g}|jd�|j|jdg�|jdg��\}}|j|�|j|d|�|j|jd�d|ddd	tj�|jd
�t	|jdg��}|j|�t
tt
|j|��}|j
|�}|j|d|�|jd
�|j|jd�d|�qW|jd�|jdkr�|jd�|jd�n|jd�|jd�|jd�dS(s�Write out the flags and include paths used to compile source files for
    the current target.

    Args:
      spec, configs: input from gyp.
    s(
# Flags passed to both C and C++ files.tcflagstcflags_csMY_CFLAGS_%stdefiness
MY_DEFS_%stprefixs-Dtquoters.
# Include paths placed before CFLAGS/CPPFLAGStinclude_dirssLOCAL_C_INCLUDES_%ss.
# Flags passed to only C++ (and not C) files.t	cflags_ccsLOCAL_CPPFLAGS_%ssR
LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))R.s## Undefine ANDROID for host modulessLOCAL_CFLAGS += -UANDROIDs]LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))s8LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))s LOCAL_ASFLAGS := $(LOCAL_CFLAGS)N(tsortedt	iteritemsRMtExtractIncludesFromCFlagsR R�RNRtEscapeCppDefinetlistR|R$RztNormalizeIncludePathsR,(	R'RZR[t
confignametconfigtextracted_includesR�tincludes_from_cflagstincludes((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytWriteSourceFlags�s0
+



!



cCs�ttj|jdg��}g|D]}tj|�s%|^q%}ttj|�}||}d}x<|D]4}	tjj|	�\}
}t|�ro|}PqoqoW|dkr�|jd|�ng}x�|D]�}	tjj|	�\}
}d|	kr|j	|	�q�d|	kr*|j	|	�q�t|�rR||krR|j	|	�q�|j	tjj
tjj|j|	���q�Wg}
g}x�|D]�}	|	}d|kr�tjj|�}d|}ntjj|�\}
}t|�r||kr|
|}n||	kr]|jd||j
|	�f�|jd�|j	tjj|	��n|
j	|�q�W|
j|�|j|
d	�tjj|�}ttt|j
|��}|j|d
�|j|d�|j||�dS(
s�Write Makefile code for any 'sources' from the gyp input.
    These are source files necessary to build the current target.
    We need to handle shared_intermediate directory source files as
    a special case by copying them to the intermediate directory and
    treating them as a genereated sources. Otherwise the Android build
    rules won't pick them up.

    Args:
      spec, configs: input from gyp.
      extra_sources: Sources generated from Actions or Rules.
    R5s.cppsLOCAL_CPP_EXTENSION := %ss$(gyp_shared_intermediate_dir)s$(gyp_intermediate_dir)s$(gyp_intermediate_dir)/s%s: %ss	mkdir -p $(@D); cp $< $@tLOCAL_GENERATED_SOURCEStGYP_COPIED_SOURCE_ORIGIN_DIRStLOCAL_SRC_FILESN(tfilterRt
CompilableR RqR#R�R"RMR�tnormpathRxtbasenameRzR�R�RNR8R9tuniquerR|R$R�(R'RZR[RbR5Rctgenerated_not_sourcestall_sourcestlocal_cpp_extensiontsourcetrootR!tlocal_filestfinal_generated_sourcestorigin_src_dirst
local_fileR�((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRS�sX(


/


 

cCs�t|jdd��rF|jdks?|jjd�s?t�|jS|jdkr^d}nd}|ddkr}d	}nd
}|jr�tjd|j|jf�}ntj|j�}dj	|||g�S(s�Return the Android module name used for a gyp spec.

    We use the complete qualified target name to avoid collisions between
    duplicate targets in different directories. We also add a suffix to
    distinguish gyp-generated module names.
    RiRRtlib_RR,R.s)_$(TARGET_$(GYP_VAR_PREFIX)ARCH)_host_gypt_gyps%s_%s(
RtR R+RARptAssertionErrorR#RRnRx(R'RZR�tsuffixtmiddle((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyREIs'			"cCs5|jdkst�|d}d}d}|jdkrR|j|�}d}nh|jdkry|j|�}d}nA|jdkr�d	}n)|jd
kr�dd|jd
|fGHn|jdkr!|jdkr!|jd|�}|jd|�}|jd�}|r!d|}q!n||}||fS(sAReturn the 'output basename' of a gyp spec, split into filename + ext.

    Android libraries must be named the same thing as their module name,
    otherwise the linker can't find them, so product_name and so on must be
    ignored if we are building a library, and the "lib" prepending is
    not done for Android.
    tloadable_moduleR*RRs.aRs.sotnones.stampRs,ERROR: What output file should be generated?R+RAtproduct_prefixtproduct_nametproduct_extensiont.(R+R�RER (R'RZRAt
target_prefixt
target_exttproduct_extttarget_stem((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRGis.
			
cCsdj|j|��S(s�Return the 'output basename' of a gyp spec.

    E.g., the loadable module 'foobar' in directory 'baz' will produce
      'libfoobar.so'
    R(RxRG(R'RZ((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytComputeOutputBasename�scCs�|jdkrd}nn|jdkrH|jdkr?d}q�d}n>|jdkrpd|j|jf}nd|j|jf}|jd	�d
ks�t�tjj	||j
|��S(s�Return the 'output' (full output path) of a gyp spec.

    E.g., the loadable module 'foobar' in directory 'baz' will produce
      '$(obj)/baz/libfoobar.so'
    Rs$(gyp_shared_intermediate_dir)RR.s8$($(GYP_HOST_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES)s5$($(GYP_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES)s@$(call intermediates-dir-for,%s,%s,true,,$(GYP_HOST_VAR_PREFIX))s7$(call intermediates-dir-for,%s,%s,,,$(GYP_VAR_PREFIX))tproduct_dirN(R+R,RDRFR tNoneR�RqR#RxR�(R'RZR#((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRJ�s			cCsSg}xF|D]>}|ddkr>tjj||j�}n|j|�q
W|S(s� Normalize include_paths.
    Convert absolute paths to relative to the Android top directory.

    Args:
      include_paths: A list of unprocessed include paths.
    Returns:
      A list of normalized include paths.
    it/(R8R9tRelativePathR&R�(R't
include_pathst
normalizedR#((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyR��s	
cCsWg}g}x>|D]6}|jd�r<|j|d�q|j|�qW||fS(s�Extract includes "-I..." out from cflags

    Args:
      cflags: A list of compiler flags, which may be mixed with "-I.."
    Returns:
      A tuple of lists: (clean_clfags, include_paths). "-I.." is trimmed.
    s-Ii(RpR�(R'R�tclean_cflagsR�tflag((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyR��s
cCsg}g}g}x�|D]�}x�|j�D]�}|dks,|dks,|dks,|jd�rkq,ntjd|�}|r�|j|jd��q,ntjd|�}|r�|j|jd��q,n|jd�r,|j|�q,q,WqW|||fS(	shFilter the 'libraries' key to separate things that shouldn't be ldflags.

    Library entries that look like filenames should be converted to android
    module names instead of being passed to the linker as flags.

    Args:
      libraries: the value of spec.get('libraries')
    Returns:
      A tuple (static_lib_modules, dynamic_lib_modules, ldflags)
    s-lcs-lstdc++s-lmslibgcc.as([^/]+)\.a$is([^/]+)\.so$s-l(RrtendswithtretsearchR�tgroupRp(R't	librarieststatic_lib_modulestdynamic_lib_modulestldflagstlibsRtmatch((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytFilterLibraries�s&
$cCs�g}g}d|kr�|jg|dD]}t|r)t|^q)�x2|dD]&}|tkrU|jt|�qUqUW|j|�ntjj|�tjj|�fS(s�Compute the dependencies of a gyp spec.

    Returns a tuple (deps, link_deps), where each is a list of
    filenames that will need to be put in front of make for either
    building (deps) or linking (link_deps).
    tdependencies(R�RURVR�R8R9R�(R'RZR_R`tdep((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRB�scCs�tjj|jdg��}|j|�\}}}|jdkr�xYt|j��D]E\}}	t|	jdg��}
|j	d�|j
|
d|�qXW|j
|d�|j	d�n|jdkr-g|D] }|dd	kr�|d
^q�}g|D] }|ddkr|d
^q}
ng}g}
|sE|r�|j	d�|j
||d�|j	d
�|j	d�n|s�|
r�|j	d�|j
||
d�ndS(s�Write Makefile code to specify the link flags and library dependencies.

    spec, configs: input from gyp.
    link_deps: link dependency list; see ComputeDeps()
    R�RR�RsLOCAL_LDFLAGS_%stLOCAL_GYP_LIBSsHLOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION)) $(LOCAL_GYP_LIBS)iR6iR7tLOCAL_STATIC_LIBRARIESs,# Enable grouping to fix circular referencess$LOCAL_GROUP_STATIC_LIBRARIES := truetLOCAL_SHARED_LIBRARIESN(R8R9R�R R�R+R�R�R�RMRN(R'RZR[R`R�tstatic_libstdynamic_libstldflags_libsR�R�R�Rctstatic_link_depstshared_link_deps((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytWriteTargetFlags
s0	
-0




cCs�|jd�|jdkr2|j|||�n|jdi�}|r�|jd�x\|j�D]N\}}	t|	t�r�|j|	|�qd|jd|tj	|	�f�qdW|jd�n|r|r|jd�|jd�|jd	|j
�|jd�n|j|j
krv|rv|jd
�|jd|j�|jd|j|j
f�|jd�nd}
|jd
kr�d}
n|jdkr�|jd|
�n|jdkr�|jd�|jd|
�n�|jdkr$|jd�|jd�|jd|
�n�|jd�|jd�|jdkr]|jd�n
|jd�|j�|jd�|j�|jd�|jd�|jd �|jd!�|j�|jd"�d#S($sPWrite Makefile code to produce the final target of the gyp spec.

    spec, configs: input from gyp.
    deps, link_deps: dependency lists; see ComputeDeps()
    part_of_all: flag indicating this target is part of 'all'
    write_alias_target: flag indicating whether to create short aliases for this
                        target
    s### Rules for final target.R�Rs(### Set directly by aosp_build_settings.s%s := %sRs/# Add target alias to "gyp_all_modules" target.s.PHONY: gyp_all_modulessgyp_all_modules: %ss# Alias gyp target name.s
.PHONY: %ss%s: %sR.tHOST_Rs!include $(BUILD_%sSTATIC_LIBRARY)RsLOCAL_PRELINK_MODULE := falses!include $(BUILD_%sSHARED_LIBRARY)RsLOCAL_CXX_STL := libc++_statics3LOCAL_MODULE_PATH := $(gyp_shared_intermediate_dir)sinclude $(BUILD_%sEXECUTABLE)s-LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamps"LOCAL_UNINSTALLABLE_MODULE := trueRAs.LOCAL_2ND_ARCH_VAR_PREFIX := $(GYP_VAR_PREFIX)s3LOCAL_2ND_ARCH_VAR_PREFIX := $(GYP_HOST_VAR_PREFIX)s%include $(BUILD_SYSTEM)/base_rules.mks7$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)s!	$(hide) echo "Gyp timestamp: $@"s	$(hide) mkdir -p $(dir $@)s	$(hide) touch $@sLOCAL_2ND_ARCH_VAR_PREFIX :=N(
RMR+R�R R�t
isinstanceR�RNRtQuoteIfNecessaryRFRAR,(R'RZR[R_R`R\R]tsettingstktvtmodifier((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRT6s^


$


	













RcCs�d}|rpg|D]}|||�^q}|rZg|D]}|j|�^q<}nddj|�}n|jjd||f�dS(s�Write a variable definition that is a list of values.

    E.g. WriteList(['a','b'], 'foo', prefix='blah') writes out
         foo = blaha blahb
    but in a pretty-printed style.
    Rs \
	s	%s :=%s

N(RzRxR<R=(R't
value_listR�R�R�R0tvaluestl((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRN�s#%cCs|jj|d�dS(Ns
(R<R=(R'ttext((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRM�scCs�d|kstjj|�r.tjj|�Stjjd|j|�}tjj|�}|jd�s�td||jf��|S(s�Convert a subdirectory-relative path into a normalized path which starts
    with the make variable $(LOCAL_PATH) (i.e. the top of the project tree).
    Absolute paths, or paths that contain variables, are just normalized.s$(s
$(LOCAL_PATH)s.Path %s attempts to escape from gyp path %s !)(RqR#tisabsR�RxRpR�(R'R#t
local_path((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyRz�scCsDd|krd|kr|S|i|d6|d6}tjj|�S(Ns%(INPUT_ROOT)ss%(INPUT_DIRNAME)st
INPUT_ROOTt
INPUT_DIRNAME(RqR#R�(R'ttemplatet	expansionR�R#((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyR��sN(t__name__t
__module__t__doc__R(ReRPRQRRR�RSRERGR�RJR�R�R�RBR�RTR�RR�RuRNRMRzR�(((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyR%es.		z	^	X	(	-	V	 	$						#		,	O	cCs�|d}tjjtjj|jd��}ttj�}||d<ddtjddg}d|GHtj|d	|�dS(
Ntoptionss
GypAndroid.mktONE_SHOT_MAKEFILERs-CtANDROID_BUILD_TOPtgyp_all_modulessBuilding: %stenv(	RqR#tabspathRxttoplevel_dirtdicttenviront
subprocesst
check_call(tdatatconfigurationstparamsRtmakefileRt	arguments((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytPerformBuild�s

	c(s�|d�|jdi�}|jdd�}|jdt�}|jdt�}|jdd�}tjjd	�}	|	s�td
���fd�}
d}tg|D]}||d^q��}
x6|D].}||}|d
dkr�|d
}Pq�q�W|sd}nd}d�jd}tj	j
�j|�}�jsQtd��t
jj|�t|d�}|jt�|jd�t�}xB|dD]6}x-t
jj|||�D]}|j|�q�Wq�Wt�}t�}i}x�|D]�}t
jj|�\}}}t
jj|�j�}|j|�||d}x�|D]y}t
jjt
jj||��j�}tj	j|�}|dr�|j|d�r�|j|�qR|j|�qRW|
||d|�jd�\}} ||}|d}!||k}"|r*|"r*q�nt
jj|||�}#t|	�}$|$j||#|| ||!d|"d|d|�}%|%|kr�d|%||%|fGHdS|||%<t
jj| tj	j|��}&|j|&�q�W|jd|�|jd�|jd�|jd �|jd!�x)t|�D]}'|jd"|'d!�q2W|jd!�|rt|jt�n|j �dS(#NRtgenerator_flagst
output_dirRtlimit_to_target_alltwrite_alias_targetstaosp_sdk_versioniRs2$ANDROID_BUILD_TOP not set; you need to run lunch.cs�tjjtjj|��j�}tjj�j||�}�jsUt	d��tjjtjj|��j
�}||fS(s9Determine where to write a Makefile for a given gyp file.s>The Android backend does not support options.generator_output.(R8R9R�RqR#R�tdepthRxtgenerator_outputR�R
(t
build_filet	base_nameRXtoutput_file(R(sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytCalculateMakefilePath�s
	R,tdefault_configurationtDefaultR�t
GypAndroids.mks>The Android backend does not support options.generator_output.R)s
LOCAL_PATH := $(call my-dir)
tbuild_filestincluded_filesthome_dot_gypRR\R]R^sqERROR: Android module names must be unique. The following targets both generate Android module name %s.
  %s
  %ssGYP_CONFIGURATION ?= %s
sGYP_VAR_PREFIX ?=
sGYP_HOST_VAR_PREFIX ?=
sGYP_HOST_MULTILIB ?= first
s
sinclude $(LOCAL_PATH)/(!R RuRORqRR�R�RoR�R#RxR
RR8R9R:R;R=R>t
AllTargetsRstParseQualifiedTargetR�tUnrelativePathR	RptQualifiedTargetR%ReR�R�tALL_MODULES_FOOTERRW((ttarget_listttarget_dictsRRRt
builddir_nameRRR^R&RR RAttoolsetsRZtsrcdirt
makefile_namet
makefile_patht
root_makefiletneeded_targetsRR#tinclude_listtandroid_modulesR?R,trelative_build_fileR$t
included_filetrelative_include_filetabs_include_fileRXRR[R\R@twriterRFtmkfile_rel_pathtinclude_file((RsZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pytGenerateOutput�s�
'


	
	

			
	

	
"


		
	





(R8t
gyp.commontgyp.generator.maket	generatorRRqR�R
tgenerator_default_variablesROt$generator_supports_multiple_toolsetst+generator_additional_non_configuration_keyst"generator_additional_path_sectionst!generator_extra_sources_for_rulesR*R>RCR"R$RURVtobjectR%RR=(((sZ/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/generator/android.pyt<module>sZ
	
		
���U	

Zerion Mini Shell 1.0