HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1991111/cwd/usr/lib/python3/dist-packages/gyp/generator/__pycache__/
Upload File :
Current File : //proc/1991111/cwd/usr/lib/python3/dist-packages/gyp/generator/__pycache__/analyzer.cpython-311.pyc
�

�"Kb�w���dZddlmZddlZddlmZddlZddlZddl	Z	ddl
Z
dZdZdZ
dZdZd	Zd
ZdZej���ZdZiZdD]Zd
ee<�dD]Zdee<�d�Zd�Zd�Zd�Zd�Zd�ZGd�de ��Z!Gd�de ��Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(d �Z)d!�Z*d"�Z+d#�Z,d$�Z-d%�Z.d&�Z/d'�Z0Gd(�d)e ��Z1d*�Z2dS)+a�
This script is intended for use as a GYP_GENERATOR. It takes as input (by way of
the generator flag config_path) the path of a json file that dictates the files
and targets to search for. The following keys are supported:
files: list of paths (relative) of the files to search for.
test_targets: unqualified target names to search for. Any target in this list
that depends upon a file in |files| is output regardless of the type of target
or chain of dependencies.
additional_compile_targets: Unqualified targets to search for in addition to
test_targets. Targets in the combined list that depend upon a file in |files|
are not necessarily output. For example, if the target is of type none then the
target is not output (but one of the descendants of the target will be).

The following is output:
error: only supplied if there is an error.
compile_targets: minimal set of targets that directly or indirectly (for
  targets of type none) depend on the files in |files| and is one of the
  supplied targets or a target that one of the supplied targets depends on.
  The expectation is this set of targets is passed into a build step. This list
  always contains the output of test_targets as well.
test_targets: set of targets from the supplied |test_targets| that either
  directly or indirectly depend upon a file in |files|. This list if useful
  if additional processing needs to be done for certain targets after the
  build, such as running tests.
status: outputs one of three values: none of the supplied files were found,
  one of the include files changed so that it should be assumed everything
  changed (in this case test_targets and compile_targets are not output) or at
  least one file was found.
invalid_targets: list of supplied targets that were not found.

Example:
Consider a graph like the following:
  A     D
 / B   C
A depends upon both B and C, A is of type none and B and C are executables.
D is an executable, has no dependencies and nothing depends on it.
If |additional_compile_targets| = ["A"], |test_targets| = ["B", "C"] and
files = ["b.cc", "d.cc"] (B depends upon b.cc and D depends upon d.cc), then
the following is output:
|compile_targets| = ["B"] B must built as it depends upon the changed file b.cc
and the supplied target A depends upon it. A is not output as a build_target
as it is of type none with no rules and actions.
|test_targets| = ["B"] B directly depends upon the change file b.cc.

Even though the file d.cc, which D depends upon, has changed D is not output
as it was not supplied by way of |additional_compile_targets| or |test_targets|.

If the generator flag analyzer_output_path is specified, output is written
there. Otherwise output is written to stdout.

In Gyp the "all" target is shorthand for the root targets in the files passed
to gyp. For example, if file "a.gyp" contains targets "a1" and
"a2", and file "b.gyp" contains targets "b1" and "b2" and "a2" has a dependency
on "b2" and gyp is supplied "a.gyp" then "all" consists of "a1" and "a2".
Notice that "b1" and "b2" are not in the "all" target as "b.gyp" was not
directly supplied to gyp. OTOH if both "a.gyp" and "b.gyp" are supplied to gyp
then the "all" target includes "b1" and "b2".
�)�print_functionNFzFound dependencyzNo dependencieszFound dependency (all)����)�INTERMEDIATE_DIR�SHARED_INTERMEDIATE_DIR�PRODUCT_DIR�LIB_DIR�SHARED_LIB_DIR�!!!)�RULE_INPUT_PATH�RULE_INPUT_ROOT�RULE_INPUT_NAME�RULE_INPUT_DIRNAME�RULE_INPUT_EXT�EXECUTABLE_PREFIX�EXECUTABLE_SUFFIX�STATIC_LIB_PREFIX�STATIC_LIB_SUFFIX�SHARED_LIB_PREFIX�SHARED_LIB_SUFFIX�CONFIGURATION_NAME�c�r�tjdkr&tjdkr|�dd��S|S)z*Converts a path to the format used by gyp.�\�/)�os�sep�altsep�replace)�paths �8/usr/lib/python3/dist-packages/gyp/generator/analyzer.py�
_ToGypPathr$rs2���V�t�^�^��	�S�(�(��<�<��c�"�"�"�	
�+�c�2�d}|�d��r$|dz
}|dd�}|�d���$|t|��krdS|t|��kr|Sd�|dt|��|z
���dz|zS)z�Resolves |path|, which starts with at least one '../'. Returns an empty
  string if the path shouldn't be considered. See _AddSources() for a
  description of |base_path_components|.r�../rrNrr)�
startswith�len�join)r"�base_path_components�depths   r#�_ResolveParentr-ys����%��������	�Q�J�E�����8�D�	
�������
�S�%�
&�
&�&�&�
�2�
�c�&�'�'�'�'��K�	���&�q��-A�)B�)B�U�)J�'J�K�	L�	L�	�

��
�r%c	��|D]�}t|��r*|�d��s|�d��r�<|}|d|dd��dd��z}|�d��r5t||��}t|��r|�|����|�||z��t
r't
d	||t|��dz
����dS)
a�Extracts valid sources from |sources| and adds them to |result|. Each
  source file is relative to |base_path|, but may contain '..'. To make
  resolving '..' easier |base_path_components| contains each of the
  directories in |base_path|. Additionally each source may contain variables.
  Such sources are ignored as it is assumed dependencies on them are expressed
  and tracked in some other means.r
�$rrNz//rr'�	AddSource)r)r(r!r-�append�debug�print)�sources�	base_pathr+�result�source�
org_sources      r#�_AddSourcesr9�s
���
>�
>�f��v�;�;��&�+�+�E�2�2��f�6G�6G��6L�6L����J�
�A�Y������+�+�D�#�6�6�
6�F�
��������f�&:�;�;�f�	�V�����
�
�f�����
�M�M�)�f�$�%�%�%��>��K��V�C��K�K�!�O�%<�=�=�=��
>�
>r%c�B�d|vrt|d|||��dSdS)N�inputs)r9)�actionr5r+�resultss    r#�_ExtractSourcesFromActionr>�s5��
������x� �)�-A�7�K�K�K�K�K��r%c��||krdS|�|dz��r'|t|��td��zd�S|S)z5Converts |path| to a path relative to |toplevel_dir|.rrN)r(r))�toplevel_dirr"s  r#�_ToLocalPathrA�sT��	�\���
�2�	�_�_�\�C�'�(�(�/���L�!�!�C��H�H�,�-�-�.�.�	
�+r%c��tjt|t|������}|�d��}t|��r|dz
}trtd||��g}d|vrt|d|||��d|vr|dD]}t||||���d|vr|dD]}t||||���|S)Nr�ExtractSourcesr4�actions�rules)
�	posixpath�dirnamerAr$�splitr)r2r3r9r>)�target�target_dictr@r5r+r=r<�rules        r#�_ExtractSourcesrL�s�����\�:�f�;M�;M� N� N�O�O�)�"����-�-��	��^�^��
���I�
�/�	�
�F�I�.�.�.��'��+�����I�&�	�3G������+����i�(�)�)����	�3G� '�)�)�)�)������G�$�P�P����i�1E�w�O�O�O�O�	�.r%c��eZdZdZd�ZdS)�TargetaAHolds information about a particular target:
  deps: set of Targets this Target depends upon. This is not recursive, only the
    direct dependent Targets.
  match_status: one of the MatchStatus values.
  back_deps: set of Targets that have a dependency on this Target.
  visited: used during iteration to indicate whether we've visited this target.
    This is used for two iterations, once in building the set of Targets and
    again in _GetBuildTargets().
  name: fully qualified name of the target.
  requires_build: True if the target type is such that it needs to be built.
    See _DoesTargetTypeRequireBuild for details.
  added_to_compile_targets: used when determining if the target was added to the
    set of targets that needs to be built.
  in_roots: true if this target is a descendant of one of the root nodes.
  is_executable: true if the type of target is executable.
  is_static_library: true if the type of target is static_library.
  is_or_has_linked_ancestor: true if the target does a link (eg executable), or
    if there is a target in back_deps that does a link.c���t��|_t|_t��|_||_d|_d|_d|_d|_	d|_
d|_d|_dS)NF)
�set�deps�MATCH_STATUS_TBD�match_status�	back_deps�name�visited�requires_build�added_to_compile_targets�in_roots�
is_executable�is_static_library�is_or_has_linked_ancestor)�selfrUs  r#�__init__zTarget.__init__�se�����D�I�(�D���U�U�D�N��D�I��D�L��D��$)�D�!��D�M��D��"�D��%*�D�"�"�"r%N)�__name__�
__module__�__qualname__�__doc__r^�r%r#rNrN�s-������;�;�$
+�
+�
+�
+�
+r%rNc��eZdZdZd�Zd�ZdS)�ConfigzoDetails what we're looking for
  files: set of files to search for
  targets: see file description for details.c��g|_t��|_t��|_t��|_dS�N)�filesrP�targets�additional_compile_target_names�test_target_names�r]s r#r^zConfig.__init__�s2���D�J��5�5�D�L�+.�5�5�D�(� �U�U�D���r%c��|�di��}|�dd��}|sdS	t|d��}tj|��}|���nO#t
$rt
d|z���t$r'}t
d|zt|��z���d}~wwxYwt|t��st
d���|�dg��|_t|�d	g����|_
t|�d
g����|_dS)zfInitializes Config. This is a separate method as it raises an exception
    if there is a parse error.�generator_flags�config_pathN�rzUnable to open file zUnable to parse config file z7config_path must be a JSON file containing a dictionaryrh�additional_compile_targets�test_targets)�get�open�json�load�close�IOError�	Exception�
ValueError�str�
isinstance�dictrhrPrjrk)r]�paramsrnro�f�config�es       r#�InitzConfig.Init�sR���j�j�!2�B�7�7�O�!�%�%�m�T�:�:�K��
��f�M�
�{�C�
 �
 �a��y��|�|�f��g�g�i�i�i�i���<�<�<��,�{�:�;�;�;��M�M�M��4�{�B�S��V�V�K�L�L�L�����M�����f�d�#�#�Q��O�P�P�P����G�R�(�(�D�J�+.��j�j�-�r�2�2�,4�,4�D�(� ����N�B�!?�!?�@�@�D���s�8A+�+%B7�"B2�2B7N)r_r`rarbr^r�rcr%r#rere�sA������0�0�#�#�#�A�A�A�A�Ar%rec��t|t|����|vrtrtd|��dSt	||d��dkrdS||ddd�D]]}tt
j�||����}t||��|vrtrtd|d|��dS�^dS)	z�Returns true if the build file |build_file| is either in |files| or
  one of the files included by |build_file| is in |files|. |toplevel_dir| is
  the root of the source tree.zgyp file modifiedT�included_filesrFNz%included gyp file modified, gyp_file=zincluded file=)rAr$r2r3r)�gyp�common�UnrelativePath)�
build_file�datarhr@�include_file�rel_include_files      r#�_WasBuildFileModifiedr�s����,�
�:� 6� 6�7�7�5�@�@��-����,�,�,��4�	��j�	�*�	+�,�,��1�1��5��:�&�'7�8����<���l�	�3�:�,�,�\�:�F�F�G�G���L�"2�3�3�u�<�<�	�0�
�5�z��.�	0�	0�	0�
�T�T�	=�

�r%c�N�||vr
d||fSt|��}|||<d|fS)z�Creates or returns the Target at targets[target_name]. If there is no
  Target for |target_name| one is created. Returns a tuple of whether a new
  Target was created and the Target.FT)rN)ri�target_namerIs   r#�_GetOrCreateTargetByNamer�.s@���G����'�+�&�&�&��+���&��'�+��	
�v��r%c��t|ddkp)|�d��p|�d����S)zBReturns true if the target type is such that it needs to be built.�type�nonerDrE)�boolrs)rJs r#�_DoesTargetTypeRequireBuildr�9sO��
�k�&�!�V�+�E��o�o�i�(�(�E�,7�O�O�G�,D�,D�
F�
F�Fr%c�8�i}g}|dd�}i}	t��}
t��}t|��dk�rS|���}t||��\}
}|
r|
�|��n|jr�[d|_t
||��|_||d}|dk|_|dk|_	|dkp|dk|_
tj�
|��d}||	vrt||||��|	|<||vr|�|��|	|r2td|��t |_|�|��nt'||||��}|D]e}t)t*j�|����|vr5td	|d
|��t |_|�|��n�f||�dg��D]u}|�|��t||��\}}|s|
�|��|j�|��|j�|���vt|��dk��S|||
|zfS)a�Returns a tuple of the following:
  . A dictionary mapping from fully qualified name to Target.
  . A list of the targets that have a source file in |files|.
  . Targets that constitute the 'all' target. See description at top of file
    for details on the 'all' target.
  This sets the |match_status| of the targets that contain any of the source
  files in |files| to MATCH_STATUS_MATCHES.
  |toplevel_dir| is the root of the source tree.NrTr��
executable�static_library�shared_libraryz(matching target from modified build filerI�matches�dependencies)rPr)�popr��addrVr�rWrZr[r\r�r��ParseQualifiedTargetr�r3�MATCH_STATUS_MATCHESrSr1rLr$rr"�normpathrs�discardrQrT)r��target_list�target_dictsr@rh�build_files�name_to_target�matching_targets�targets_to_visit�build_file_in_files�roots�build_file_targetsr��created_targetrI�target_typer�r4r7�dep�created_dep_target�
dep_targets                      r#�_GenerateTargetsr�@s
���.���!����^�����%�%�%��u�u�������!�!�"�&�&�(�(�K�5�n�6A�C�C��N�F����i�i������	�����F�N�7��[�!�#�#�F���{�+�F�3�K�&�,�6�F��*�.>�>�F��(3�|�(C�)H�(3�7G�(G��$���0�0��=�=�a�@�J��,�,�,�
�
�D�%��
F�
F��*�%��[� � ����V�$�$�$��:�&���6��D�D�D�0�f�����f�%�%�%�%���\�+�-F� ,�.�.�g����&��b�g�&�&�v�.�.�/�/�5�8�8�
��+�y�&�
9�
9�
9� 4�&�
�
�
!�
!�&�
)�
)�
)�
�%�	9��K�(�,�,�^�R�@�@�	'�	'�����c�"�"�"�'?��@C�(E�(E�$��*�
�"�
�
�
�j�!�!�!��k�o�o�j�!�!�!�����v�&�&�&�&�i	�����!�!�l
�)�5�3E�+E�	E�Er%c�Z�i}|sigfSt|��}|���D]r}tj�|��}t|��dkr>|d|vr4|�|d��||||d<|s|gfcS�s|d�|D��fS)z�Returns a tuple of the following:
  . mapping (dictionary) from unqualified name to Target for all the
    Targets in |to_find|.
  . any target names not found. If this is empty all targets were found.rc��g|]}|��Srcrc��.0�xs  r#�
<listcomp>z2_GetUnqualifiedToTargetMapping.<locals>.<listcomp>�s��%�%�%��!�%�%�%r%)rP�keysr�r�r�r)�remove)�all_targets�to_findr6r��	extracteds     r#�_GetUnqualifiedToTargetMappingr��s���
�&�	��
�r�6�M���L�L�'� �%�%�'�'���k��
�/�/��<�<�I�
�9�~�~����i��l�g�5�5�
�n�n�Y�q�\�"�"�"�(��5�f�Y�q�\��
���r�z�����	�%�%�W�%�%�%�	%�%r%c��|jtkrdS|jtks|jtkrdS|jD]<}t|��r+t|_t
d|jd|j��dS�=t|_dS)z�Returns true if |target| or any of its dependencies is one of the
  targets containing the files supplied as input to analyzer. This updates
  |matches| of the Targets as it recurses.
  target: the Target to look for.FT�	zmatches by dep)rS�MATCH_STATUS_DOESNT_MATCHr��"MATCH_STATUS_MATCHES_BY_DEPENDENCYrQ�"_DoesTargetDependOnMatchingTargetsr3rU)rIr�s  r#r�r��s���
��5�5�5��5���0�0�0���?�?�?��4�
�[���c�)�#�.�.��>�f���D�&�+�/���:�:�:�
�T�T��2�&��	�r%c�z�g}td��|D]&}t|��r|�|���'|S)z�Returns the list of Targets in |possible_targets| that depend (either
  directly on indirectly) on at least one of the targets containing the files
  supplied as input to analyzer.
  possible_targets: targets to search from.z#Targets that matched by dependency:)r3r�r1)�possible_targets�foundrIs   r#�%_GetTargetsDependingOnMatchingTargetsr��sO��

�%��-�.�.�.� ���f�)�&�1�1���l�l�6�����	�,r%c��|jrdSd|_||v|_|jD]S}t||d|��|xj|jzc_|xj|jzc_|xj|jzc_�T|jr|js |js	|s|js|jrc|rc|js^td|j
d|jd|jd|d|jd	|jd
|j��|�|��d|_dSdSdSdSdS)aaRecurses through all targets that depend on |target|, adding all targets
  that need to be built (and are in |roots|) to |result|.
  roots: set of root targets.
  add_if_no_ancestor: If true and there are no ancestors of |target| then add
  |target| to |result|. |target| must still be in |roots|.
  result: targets that need to be built are added here.NTFz		adding to compile targetsr�rX�add_if_no_ancestorrWr[r\)rVrYrT�_AddCompileTargetsrXr\rZrWr[r3rUr�)rIr�r�r6�back_dep_targets     r#r�r��s����^��
�F��&�.��e�O�&�/��)�1�1�o����u�f�=�=�=�
�#�#��'O�O�#�#�
�O�O��/�/�O�O�
�$�$��/�1�$�$�$��_�+�	�	�+��-�+��+�"(�!6�+��
"�	+�(:�	+�
�.�+�
�
)�6�;����!;��*�,@��/��1F��� 8�&��(H�
�
�
��J�J�v����&*�F�#�#�#�+�+�+�+�+�+�+�+r%c�z�t��}|D])}td|j��t||d|���*|S)z�Returns the set of Targets that require a build.
  matching_targets: targets that changed and need to be built.
  supplied_targets: set of targets supplied to analyzer to search from.z!finding compile targets for matchT)rPr3rUr�)r��supplied_targetsr6rIs    r#�_GetCompileTargetsr��sL���5�5�&� �?�?�f�	�
-�v�{�;�;�;��v�/��v�>�>�>�>�	�-r%c���d|vrtd|d��d|vrt|d��d|vrD|d���td��|dD]}td|���d|vrD|d���td��|dD]}td|���d	|vrD|d	���td
��|d	D]}td|���d|vrD|d���td��|dD]}td|���d
|vrD|d
���td��|d
D]}td|���|�di���dd��}|s#ttj|����dS	t|d��}|�tj|��dz��|���dS#t$r)}td|t|����Yd}~dSd}~wwxYw)z;Writes the output, either to stdout or a file is specified.�errorzError:�statusriz.Supplied targets that depend on changed files:r��invalid_targetsz%The following targets were not found:�
build_targetszTargets that require a build:�compile_targetszTargets that need to be built:rrz
Test targets:rn�analyzer_output_pathN�w�
zError writing to output file)
r3�sortrsru�dumpsrt�writerwrxr{)r~�valuesrI�output_pathrr�s      r#�_WriteOutputr��s�������	�(�F�7�O�$�$�$�
����	�&��
�����&���
�9�������	�
:�;�;�;���#�����D�&������&� � �
���"�"�$�$�$�	�
1�2�2�2��*�+�����D�&���������
�?�� � �"�"�"�	�
)�*�*�*���)�����D�&������&� � �
���"�"�$�$�$�	�
*�+�+�+��*�+�����D�&������v���
�>����!�!�!�	�/������(�����D�&������
�
�,�b�1�1�5�5��d�$�$�+�	��	�$�*�V�
�
����
�F�?��[�#���A��G�G�D�J�v����%�&�&�&��G�G�I�I�I�I�I��	�?�?�?�	�
(�+�s�1�v�v�>�>�>�>�>�>�>�>�>�����?���s�,AH<�<
I/�I*�*I/c���|djrQ|djD]C}ttj�|����|vrtd|��dS�DdS)zNReturns true if one of the files in |files| is in the set of included
  files.�optionsz+Include file modified, assuming all changedTF)�includesr$rr"r�r3)r~rh�includes   r#�_WasGypIncludeFileModifiedr�,sr���I�����)�$�-����	�B�G�$�$�W�-�-�	.�	.�%�	7�	7�
�;�W�E�E�E��t�t�
8�
�r%c� ���fd�|D��S)zBReturns a list of the values in |names| that are not in |mapping|.c���g|]}|�v�|��	Srcrc�r�rU�mappings  �r#r�z_NamesNotIn.<locals>.<listcomp>9s#���	8�	8�	8�4�D��$7�$7�$�$7�$7�$7r%rc��namesr�s `r#�_NamesNotInr�7s���	8�	8�	8�	8�5�	8�	8�	8�8r%c� ���fd�|D��S)zUReturns a list of the mapping[name] for each value in |names| that is in
  |mapping|.c�(��g|]}|�v��|��Srcrcr�s  �r#r�z"_LookupTargets.<locals>.<listcomp>?s"���	=�	=�	=�D�T�W�_�_�'�$�-�_�_�_r%rcr�s `r#�_LookupTargetsr�<s���
>�	=�	=�	=�E�	=�	=�	=�=r%c��tj�|��}|dkr|�dd��dS|dkrc|�dd��ddlmcm}t|dg��}t|dg��}tj�	||��dS|}|dkrd	}|�d|��dS)
zDCalculate additional variables for use in the build (called by gyp).�mac�OS�winrN�+generator_additional_non_configuration_keys�"generator_additional_path_sections�android�linux)
r�r��	GetFlavor�
setdefault�gyp.generator.msvs�	generator�msvs�getattr�msvs_emulation�CalculateCommonVariables)�default_variablesr~�flavor�msvs_generatorr�r��operating_systems       r#�CalculateVariablesr�Bs����:����'�'�&��u�_�_�� � ��u�-�-�-�-�-�
����� � ��u�-�-�-�0�/�/�/�/�/�/�/�/�29�.�5�r�3;�3;�/�)0��,�b�*2�*2�&���/�/�0A�6�J�J�J�J�J���
���� ��� � ��'7�8�8�8�8�8r%c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TargetCalculatorzBCalculates the matching test_targets and matching compile_targets.c		�&�t|��|_t|��|_t||||t	|��|��\|_|_|_t|j|�	����\|_
|_dSrg)rP� _additional_compile_target_names�_test_target_namesr��	frozenset�_name_to_target�_changed_targets�
_root_targetsr��_supplied_target_names_no_all�_unqualified_mappingr�)	r]rhrjrkr�r�r�r@r�s	         r#r^zTargetCalculator.__init__[s���,/�0O�,P�,P�D�)�!�"3�4�4�D���t�[�,�� ��'�'��6�6�D�D��$�/��1C�%�T�%9�%)�%G�%G�%I�%I�K�K�4�D��t�3�3�3r%c� �|j|jzSrg)rrrls r#�_supplied_target_namesz'TargetCalculator._supplied_target_namesfs���0�4�3J�J�Jr%c�X�|���}|�d��|S)z0Returns the supplied test targets without 'all'.�all)rr�)r]r6s  r#rz.TargetCalculator._supplied_target_names_no_allis*��
�
(�
(�
*�
*�F�
�N�N�5�����Mr%c��|jS)z;Returns true if the supplied files impact the build at all.)rrls r#�is_build_impactedz"TargetCalculator.is_build_impactedos��� � r%c�r�|���sJ�t|j��}|�d��t	||j��}d|jv}|r/d�t|��t|j��zD��}nd�|D��}td��|jD]}td|���td��|D]}td|j���td��t|��}|o#t|��t|j��z}|r)d�t|��t|��zD��}td	��|D]}td|j���d
�|D��}	|r$|	�
d��td��|	S)z'Returns the set of output test targets.r
c��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s$��<�<�<�A�a�<�<�<r%c��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s��5�5�5�A�a�5�5�5r%zsupplied test_targetsr�zfound test_targetsz#searching for matching test targetsc��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s*��F�F�F�Q�q�F�F�Fr%zmatched test_targetsc�b�g|],}tj�|j��d��-S�r�r�r�r�rU�r�rIs  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�sE��B�B�B�!'�!�Z�<�<�V�[�I�I�!�L�B�B�Br%z	all)rrPrr�r�r	rr3rUr�r1)
r]�test_target_names_no_all�test_targets_no_all�test_target_names_contains_allrrr�rI�matching_test_targets�"matching_test_targets_contains_all�matching_target_namess
          r#�find_matching_test_target_namesz0TargetCalculator.find_matching_test_target_namesssB���!�!�#�#�#�#�#�
 #�4�#:�;�;���$�$�U�+�+�+�(�)A�)-�)B�D�D��%*�d�.E�%E�"�%�6�<�<�#�&9�":�":�"%�d�&8�"9�"9�#:�<�<�<�l�l�6�5�!4�5�5�5�l�	�
!�"�"�"��.�����D�+�����	�
���������D�&�+�����	�
/�0�0�0�A�,�O�O��*H�+B�*-�.C�*D�*D�*-�d�.@�*A�*A�+B�'�*�F�F�F�3�/D�+E�+E�+.�/B�+C�+C�,D�F�F�F��	�
 �!�!�!�'�����D�&�+�����B�B�+@�B�B�B��)���"�"�5�)�)�)��G�n�n�n� � r%c��|���sJ�|j���D]	}d|_�
t	|���|j��}d|���vr.d�t|��t|j	��zD��}td��|D]}td|j���td��t|j
|��}d�|D��S)z*Returns the set of output compile targets.Fr
c��g|]}|��Srcrcr�s  r#r�zGTargetCalculator.find_matching_compile_target_names.<locals>.<listcomp>�s*��@�@�@��!�@�@�@r%z'Supplied test_targets & compile_targetsr�zFinding compile targetsc�b�g|],}tj�|j��d��-Srrrs  r#r�zGTargetCalculator.find_matching_compile_target_names.<locals>.<listcomp>�s?��+�+�+��
�J�+�+�F�K�8�8��;�+�+�+r%)rrr�rVr�rr	rrPrr3rUr�r)r]rIr�r�s    r#�"find_matching_compile_target_namesz3TargetCalculator.find_matching_compile_target_names�s9���!�!�#�#�#�#�#��&�-�-�/�/�����f�n�n�%�d�&H�&H�&J�&J�&*�&?�A�A����+�+�-�-�-�-�@�@�c�*:�&;�&;�&)�$�*<�&=�&=�'>�@�@�@��	�
3�4�4�4�"�����D�&�+�����	�
#�$�$�$�(��)>�)9�;�;�O�+�+�)�+�+�+�+r%N)
r_r`rarbr^rrrrr"rcr%r#rrYs{������J�J�	L�	L�	L�K�K�K����!�!�!�)!�)!�)!�V+�+�+�+�+r%rc��t��}	|�|��|jstd���t	t
j�|dj����}trtd|��t||j��rFtt|j��t|j|jz��d�}t!|fi|��dSt#|j|j|j|||||d��}|���s+t&ggd�}|jr
|j|d<t!|fi|��dS|���}|���}	|	p|}
||
rt.nt&tt1|	��t1|��z��d�}|jr
|j|d<t!|fi|��dS#t$r)}t!|t3|���	��Yd}~dSd}~wwxYw)
z2Called by gyp as the final stage. Outputs results.z<Must specify files to analyze via config_path generator flagr�r@)r�rrr�Nr�r�)rrr�r�)r�)rer�rhryr$rr"�abspathr@r2r3r��all_changed_string�listrkrjr�rr�no_dependency_stringr�rr"�found_dependency_stringrPr{)r�r�r�r~r�r@�result_dict�
calculatorrk�compile_target_names�found_at_least_one_targetr�s            r#�GenerateOutputr-�s{���8�8�&�0'�
�K�K������<����
�
���b�g�o�o�f�Y�.?�.L�M�M�N�N�L��*��N�L�)�)�)�!�&�&�,�7�7�
� 2�&*�6�+C�&D�&D�)-��>��0�1�*2�*2�4�4�k�
�6�)�)�[�)�)�)��f�!�&�,�"(�"H�"(�":�D�"-�|�\�"(��"7�	9�9�J�
�'�'�)�)�
� 4�&(�)+�.�.�k�
�	#�D�)3�)C��%�&��6�)�)�[�)�)�)��f�"�B�B�D�D��%�H�H�J�J�� 4� I�8I��$5�1�L�5�5�7K�'+��0�1�1��-�.�.�/�(0�(0�2�2�K��!�B�'1�'A�k�#�$���'�'�;�'�'�'�'�'��	�'�'�'���s�1�v�v�&�&�&�&�&�&�&�&�&�&�����'���s&�CG�$A(G�BG�
H�"H�H)3rb�
__future__r�
gyp.commonr��gyp.ninja_syntax�ninja_syntaxrurrF�sysr2r(r'r%r�r�r�rRr��CrossCompileRequested�$generator_supports_multiple_toolsets�4generator_wants_static_library_dependencies_adjusted�generator_default_variablesrG�unusedr$r-r9r>rArL�objectrNrer�r�r�r�r�r�r�r�r�r�r�r�r�r�rr-rcr%r#�<module>r9s���
:�:�x&�%�%�%�%�%�����'�'�'�'�'�'�����	�	�	�	�����
�
�
�
�
��,��(��-��
��&'�"�����'*�z�'G�'G�'I�'I�$�7<�4���-�/�/�G�).��g�&�&�%�+�+�F�)+��f�%�%�������$>�>�>�0L�L�L�������> +� +� +� +� +�V� +� +� +�FA�A�A�A�A�V�A�A�A�B���2���F�F�F�SF�SF�SF�l&�&�&�&���&
�
�
�(+�(+�(+�V���*?�*?�*?�Z���9�9�9�
>�>�>�9�9�9�.Y+�Y+�Y+�Y+�Y+�v�Y+�Y+�Y+�x3'�3'�3'�3'�3'r%