§
    ƒnóc@…  ã                  ó$  — d dl mZ ddlmZ ddlmZ ddlmZ ddlm	Z	 d dl
Zd d	lmZ d d
lmZ d dlZd dlZd dlZej        rddlmZ  G d„ d¦  «        Z G d„ dej        ¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ d¦  «        ZdS )é    )Úannotationsé   )ÚCMakeException)Úparse_generator_expressionsé   )Úmlog)Úversion_compareN©ÚPath)Ú	lru_cache)ÚEnvironmentc                  óZ   — e Zd Zdd
„Ze ed¬¦  «        dd„¦   «         ¦   «         Zdd„ZdS )ÚCMakeTraceLineÚfile_strÚstrÚlineÚintÚfuncÚargsúT.List[str]ÚreturnÚNonec                ó’   — t                                |¦  «        | _        || _        |                     ¦   «         | _        || _        d S ©N)r   Ú_to_pathÚfiler   Úlowerr   r   )Úselfr   r   r   r   s        ú>/usr/lib/python3/dist-packages/mesonbuild/cmake/traceparser.pyÚ__init__zCMakeTraceLine.__init__#   s8   € Ý"×+Ò+¨HÑ5Ô5ˆŒ	ØˆŒ	Ø—J’J‘L”LˆŒ	ØˆŒ	ˆ	ˆ	ó    N)Úmaxsizer   c                ó    — t          | ¦  «        S r   r
   )r   s    r   r   zCMakeTraceLine._to_path)   s   € õ �H‰~Œ~Ðr!   c                ó^   — d}|                      | j        | j        | j        | j        ¦  «        S )NzCMake TRACE: {0}:{1} {2}({3}))Úformatr   r   r   r   )r   Úss     r   Ú__repr__zCMakeTraceLine.__repr__.   s'   € Ø+ˆØ�xŠx˜œ	 4¤9¨d¬i¸¼ÑCÔCÐCr!   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   ©r   r   )Ú__name__Ú
__module__Ú__qualname__r    Ústaticmethodr   r   r'   © r!   r   r   r   "   sz   € € € € € ðð ð ð ð Ø€Y�tÐÑÔðð ð ñ Ôñ „\ððDð Dð Dð Dð Dð Dr!   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚCMakeCacheEntryr   Úvaluer   ÚtypeN)r)   r*   r+   Ú__annotations__r-   r!   r   r/   r/   2   s%   € € € € € € ØÐÐÑØ€I€I�I€I€Ir!   r/   c                  ó.   — e Zd Z	 	 	 ddd„Zdd„Zdd„ZdS )ÚCMakeTargetNFÚnamer   Útarget_typeÚ
propertiesú$T.Optional[T.Dict[str, T.List[str]]]ÚimportedÚboolÚtlineúT.Optional[CMakeTraceLine]c                ó~   — |€i }|| _         || _        || _        || _        || _        g | _        d | _        d | _        d S r   )r5   r1   r7   r9   r;   ÚdependsÚcurrent_bin_dirÚcurrent_src_dir)r   r5   r6   r7   r9   r;   s         r   r    zCMakeTarget.__init__7   sO   € ð ÐØˆJØˆŒ	ØˆŒ	Ø$ˆŒØ ˆŒØˆŒ
ØˆŒØ#ˆÔØ#ˆÔÐÐr!   r   c                óÀ   — d}d}| j         D ]&}|d                     || j         |         ¦  «        z  }Œ'|                     | j        | j        | j        || j        ¦  «        S )NzsCMake TARGET:
  -- name:      {}
  -- type:      {}
  -- imported:  {}
  -- properties: {{
{}     }}
  -- tline: {}Ú z      '{}': {}
)r7   r%   r5   r1   r9   r;   )r   r&   ÚpropSTRÚis       r   r'   zCMakeTarget.__repr__J   sh   € ð HˆØˆØ”ð 	Hð 	HˆAØÐ)×0Ò0°°D´OÀAÔ4FÑGÔGÑGˆGˆGØ�xŠx˜œ	 4¤9¨d¬m¸WÀdÄjÑQÔQÐQr!   r   c                óÊ   — | j         sd S | j                              ¦   «         D ]?\  }}d„ |D ¦   «         | j         |<   t          d„ | j         |         D ¦   «         ¦  «        sJ ‚Œ@d S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r-   ©Ústrip©Ú.0Úxs     r   ú
<listcomp>z0CMakeTarget.strip_properties.<locals>.<listcomp>V   s    € Ð#;Ð#;Ð#;°! A§G¢G¡I¤IÐ#;Ð#;Ð#;r!   c              3  ó   K  — | ]}d |vV — Œ	dS )ú;Nr-   rI   s     r   ú	<genexpr>z/CMakeTarget.strip_properties.<locals>.<genexpr>W   s&   è è € ÐBÐB¨�s !�|ÐBÐBÐBÐBÐBÐBr!   )r7   ÚitemsÚall)r   ÚkeyÚvals      r   Ústrip_propertieszCMakeTarget.strip_propertiesQ   s‡   € àŒð 	ØˆFØœ×-Ò-Ñ/Ô/ð 	Cð 	C‰HˆC�Ø#;Ð#;°sÐ#;Ñ#;Ô#;ˆDŒO˜CÑ ÝÐBÐB¨T¬_¸SÔ-AÐBÑBÔBÑBÔBÐBÐBÐBÐBð	Cð 	Cr!   )NFN)
r5   r   r6   r   r7   r8   r9   r:   r;   r<   r(   )r   r   )r)   r*   r+   r    r'   rT   r-   r!   r   r4   r4   6   sl   € € € € € ð
 EIØ$)Ø:>ð$ð $ð $ð $ð $ð&Rð Rð Rð RðCð Cð Cð Cð Cð Cr!   r4   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚCMakeGeneratorTargetr5   r   r   r   c                ó†   •— t          ¦   «                              |di ¦  «         g | _        g | _        g | _        d | _        d S )NÚCUSTOM)Úsuperr    ÚoutputsÚ_outputs_strÚcommandÚworking_dir)r   r5   Ú	__class__s     €r   r    zCMakeGeneratorTarget.__init__Z   sC   ø€ Ý‰Œ×Ò˜˜x¨Ñ,Ô,Ð,ØˆŒØˆÔØˆŒØˆÔÐÐr!   )r5   r   r   r   )r)   r*   r+   r    Ú__classcell__)r^   s   @r   rV   rV   Y   s=   ø€ € € € € ð ð  ð  ð  ð  ð  ð  ð  ð  ð  r!   rV   c                  ó  — e Zd ZdDdEd„ZdFd„ZdGd„ZdHdId„ZdJd„ZdKd„ZdLd„Z	dMd„Z
dNd„ZdOd!„ZdPd"„ZdPd#„ZdPd$„ZdPd%„ZdHdQd'„ZdPd(„ZdPd)„ZdPd*„ZdPd+„ZdPd,„ZdPd-„ZdPd.„ZdPd/„ZdPd0„ZdPd1„ZdRdSd9„ZdPd:„ZdPd;„ZdPd<„ZdTd>„Z dTd?„Z!dUdA„Z"dVdC„Z#dS )WÚCMakeTraceParserTÚcmake_versionr   Ú	build_dirr   Úenvú'Environment'Ú
permissiver:   r   r   c                óä  — i | _         i | _        i | _        i | _        t	          ¦   «         | _        g | _        || _        || _        || _	        d| _
        || j
        z  | _        t          |d¦  «        rdnd| _        g | _        g | _        g | _        i d| j        “d| j        “d| j        “d| j        “d	| j        “d
| j        “d| j        “d| j        “d| j        “d| j        “d| j        “d| j        “d| j        “d| j        “d| j        “d| j         “d| j!        “d| j"        i¥| _#        t          | j	        d¦  «        r3tI          j%        tM          j'        d| j	        › d�¦  «        d¬¦  «         d S d S )Nzcmake_trace.txtz>=3.17újson-v1ÚhumanÚsetÚunsetÚadd_executableÚadd_libraryÚadd_custom_commandÚadd_custom_targetÚset_propertyÚset_target_propertiesÚtarget_compile_definitionsÚtarget_compile_optionsÚtarget_include_directoriesÚtarget_link_librariesÚtarget_link_optionsÚadd_dependenciesÚmessageÚmeson_ps_execute_delayed_callsÚmeson_ps_reload_varsÚmeson_ps_disabled_functionz<3.17.0z¤                CMake support for versions <3.17 is deprecated since Meson 0.62.0.
                |
                |   However, Meson was only able to find CMake a  .
                |
                |   Support for all CMake versions below 3.17.0 will be removed once
                |   newer CMake versions are more widely adopted. If you encounter
                |   any errors please try upgrading CMake to a newer version first.
            T)Úonce)(ÚvarsÚvars_by_fileÚtargetsÚcacherj   Úexplicit_headersÚcustom_targetsrd   rf   rb   Ú
trace_fileÚtrace_file_pathr	   Útrace_formatÚerrorsÚdelayed_commandsÚstored_commandsÚ
_cmake_setÚ_cmake_unsetÚ_cmake_add_executableÚ_cmake_add_libraryÚ_cmake_add_custom_commandÚ_cmake_add_custom_targetÚ_cmake_set_propertyÚ_cmake_set_target_propertiesÚ!_cmake_target_compile_definitionsÚ_cmake_target_compile_optionsÚ!_cmake_target_include_directoriesÚ_cmake_target_link_librariesÚ_cmake_target_link_optionsÚ_cmake_add_dependenciesÚ_cmake_messageÚ_meson_ps_execute_delayed_callsÚ_meson_ps_reload_varsÚ_meson_ps_disabled_functionÚ	functionsr   ÚdeprecationÚtextwrapÚdedent)r   rb   rc   rd   rf   s        r   r    zCMakeTraceParser.__init__b   s#  € ØCEˆŒ	ØDFˆÔØCEˆŒØGIˆŒ
å #¡¤ˆÔð !ˆÔàˆŒØ$ˆŒØ*ˆÔØ+ˆŒØ(¨4¬?Ñ:ˆÔÝ)8¸ÈÑ)QÔ)QÐ^˜I˜IÐW^ˆÔà#%ˆŒð
 !#ˆÔØ!ˆÔð
Ø�4”?ð
à�TÔ&ð
ð ˜dÔ8ð
ð ˜4Ô2ð	
ð
 ! $Ô"@ð
ð   Ô!>ð
ð ˜DÔ4ð
ð $ TÔ%Fð
ð )¨$Ô*Pð
ð % dÔ&Hð
ð )¨$Ô*Pð
ð $ TÔ%Fð
ð " 4Ô#Bð
ð  Ô <ð
ð �tÔ*ð
ð( -¨dÔ.Rð)
ð* # DÔ$>ð+
ð, )¨$Ô*Jð-
ð 
ˆŒõ2 ˜4Ô-¨yÑ9Ô9ð 		ÝÔ�Xœ_ð .ð AEÔ@Rð.ð .ð .ñ ô ð ðñ ô ð ð ð ð		ð 		r!   r   c                ó~   — ddgddgdœ}dg}|                       ¦   «         s|d| j        › �gz  }|| j                 |z   S )Nz--tracez--trace-expandz--trace-format=json-v1)ri   rh   z--no-warn-unused-cliz--trace-redirect=)Úrequires_stderrrƒ   r…   )r   Úarg_mapÚ	base_argss      r   Ú
trace_argszCMakeTraceParser.trace_args¡   sj   € àÐ!1Ð2Ø(Ð*BÐCð
ð 
ˆð
 ,Ð,ˆ	Ø×#Ò#Ñ%Ô%ð 	AØÐ?¨d¬oÐ?Ð?Ð@Ñ@ˆIà�tÔ(Ô)¨IÑ5Ð5r!   c                ó,   — t          | j        d¦  «        S )Nz<3.16)r	   rb   )r   s    r   r    z CMakeTraceParser.requires_stderr­   s   € Ý˜tÔ1°7Ñ;Ô;Ð;r!   NÚtraceúT.Optional[str]c                óà  ‡ ‡
‡‡— ‰                       ¦   «         sY‰ j        j        s1‰ j                             ¦   «         st	          d‰ j        ›d�¦  «        ‚‰ j                             dd¬¦  «        }|st	          d¦  «        ‚d }‰ j        dk    r‰                      |¦  «        }n9‰ j        dk    r‰                      |¦  «        }nt	          d	‰ j        › d
�¦  «        ‚|D ]O}|j	        ‰ j
        v r‰ xj        |gz  c_        Œ"‰ j                             |j	        d ¦  «        }|r ||¦  «         ŒPˆ fd„Š
ˆ fd„}ˆ
fd„‰ j                             ¦   «         D ¦   «         ‰ _        ˆ
fd„‰ j                             ¦   «         D ¦   «         ‰ _        ˆ fd„‰ j        D ¦   «         ‰ _        ˆ
fd„‰ j                             ¦   «         D ¦   «         ‰ _        ‰ j                             ¦   «         D ]‰Šˆ fd„Št+          ‰j        ‰ ‰¬¦  «        ‰_        t+          ‰j        ‰ ‰¬¦  «        ‰_        ‰j        �&ˆˆfd„‰j                             ¦   «         D ¦   «         nd ‰_         ‰‰j        ‰¦  «        ‰_        ŒŠ‰ j        D ]Â} ||j        ¦  «        |_        |j        }ˆ
fd„|j        D ¦   «         |_        t=          |j        |¦  «        D ]9\  }}	|d         dk    r(t	          d                     |	d         ¦  «        ¦  «        ‚Œ:|j         �/tC          t+          tE          |j         ¦  «        ‰ ¦  «        ¦  «        nd |_         ŒÃ‰ j                             ¦   «         D ]Š‰ #                    ¦   «          Œd S )NzCMake: Trace file "z" not foundÚignorezutf-8)r†   Úencodingz3CMake: The CMake trace was not provided or is emptyri   rh   z,CMake: Internal error: Invalid trace format z. Expected [human, json-v1]c                óx   •— | r6t          d                     | ¦  «        ‰¦  «                             d¦  «        ng S ©NrN   ©r   ÚjoinÚsplit©Ústrlistr   s    €r   ú<lambda>z(CMakeTraceParser.parse.<locals>.<lambda>Ï   sn   ø€ ð  SZð  PbÕOjÐkn×ksÒksÐt{Ñk|Ôk|ð  Cñ  PDô  PD÷  PJò  PJð  KNñ  POô  POð  POð  `b€ r!   c                óŒ   •— | r@d„ t          d                     | ¦  «        ‰¦  «                             d¦  «        D ¦   «         ng S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r-   r
   rI   s     r   rL   z<CMakeTraceParser.parse.<locals>.<lambda>.<locals>.<listcomp>Ð   s;   € ð  Qcð  Qcð  QcÐ]^ÕQUÐVWÑQXÔQXð  Qcð  Qcð  Qcr!   rN   r¬   r¯   s    €r   r±   z(CMakeTraceParser.parse.<locals>.<lambda>Ð   s©   ø€ ð  gnð  Qvð  Qcð  QcÕb}ð  B÷  Gò  Gð  HOñ  Pô  Pð  RVñ  cWô  cW÷  c]ò  c]ð  ^añ  cbô  cbð  Qcñ  Qcô  Qcð  Qcð  tv€ r!   c                ó.   •— i | ]\  }}| ‰|¦  «        “ŒS r-   r-   ©rJ   ÚkÚvÚstrlist_gens      €r   ú
<dictcomp>z*CMakeTraceParser.parse.<locals>.<dictcomp>Ò   s'   ø€ ÐEÐEÐE©4¨1¨a�Q˜˜ A™œÐEÐEÐEr!   c                óX   •— i | ]&\  }}|ˆfd „|                      ¦   «         D ¦   «         “Œ'S )c                ó.   •— i | ]\  }}| ‰|¦  «        “ŒS r-   r-   rµ   s      €r   r¹   z5CMakeTraceParser.parse.<locals>.<dictcomp>.<dictcomp>Ô   s'   ø€ Ð8Ð8Ð8¡d a¨��;�;˜q‘>”>Ð8Ð8Ð8r!   )rP   )rJ   ÚpÚdr¸   s      €r   r¹   z*CMakeTraceParser.parse.<locals>.<dictcomp>Ó   sL   ø€ ð 
ð 
ð 
á��1ð Ð8Ð8Ð8Ð8¨a¯gªg©i¬iÐ8Ñ8Ô8ð
ð 
ð 
r!   c           	     ód   •— h | ],}t          t          t          |¦  «        ‰¦  «        ¦  «        ’Œ-S r-   )r   r   r   ©rJ   rK   r   s     €r   ú	<setcomp>z)CMakeTraceParser.parse.<locals>.<setcomp>×   s3   ø€ Ð pÐ pÐ pÐUV¥Õ&AÅ#ÀaÁ&Ä&È$Ñ&OÔ&OÑ!PÔ!PÐ pÐ pÐ pr!   c                ó^   •— i | ])\  }}|t           ‰|j        ¦  «        |j        ¦  «        “Œ*S r-   )r/   r0   r1   rµ   s      €r   r¹   z*CMakeTraceParser.parse.<locals>.<dictcomp>Ø   sO   ø€ ð 
ð 
ð 
ñ
 ��1ð	 �Ø�˜AœGÑ$Ô$Ø”ñô ð
ð 
ð 
r!   c                ó|   •— | r8t          d                     | ¦  «        ‰|¬¦  «                             d¦  «        ng S )NrN   ©Úcontext_tgtr¬   )r°   Útr   s     €r   r±   z(CMakeTraceParser.parse.<locals>.<lambda>á   s”   ø€ ð  u|ð  cDÕb}ð  B÷  Gò  Gð  HOñ  Pô  Pð  RVð  deð  cfñ  cfô  cf÷  clò  clð  mpñ  cqô  cqð  cqð  BD€ r!   rÃ   c                ó0   •— i | ]\  }}| ‰|‰¦  «        “ŒS r-   r-   )rJ   r¶   r·   ÚtgtÚtgtlist_gens      €€r   r¹   z*CMakeTraceParser.parse.<locals>.<dictcomp>ä   s8   ø€ ð ð ð Ù+/¨1¨a��;�;˜q #Ñ&Ô&ðð ð r!   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r-   r-   )rJ   rK   r¸   s     €r   rL   z*CMakeTraceParser.parse.<locals>.<listcomp>ì   s!   ø€ ÐAÐAÐA¨q˜K˜K¨™NœNÐAÐAÐAr!   r   rB   zdWe evaluated the cmake variable '{}' to an empty string, which is not a valid path to an executable.)$r    r„   ÚexistsÚis_filer   Ú	read_textr…   Ú_lex_trace_humanÚ_lex_trace_jsonr   r‡   rˆ   r›   Úgetr}   rP   r~   r�   r€   r   Úvaluesr   r5   r1   r7   r>   r‚   r[   rZ   r\   Úzipr%   r]   r   r   rT   )r   r¥   Úlexer1ÚlÚfnÚpathlist_genÚctgtÚtempr\   Úsrcr¸   rÇ   rÈ   s   `         @@@r   ÚparsezCMakeTraceParser.parse°   sx  øøøø€ à×#Ò#Ñ%Ô%ð 	VØÔ'Ô.ð `°tÔ7K×7SÒ7SÑ7UÔ7Uð `Ý$Ð%^¸4Ô;OÐ%^Ð%^Ð%^Ñ_Ô_Ð_ØÔ(×2Ò2¸(ÈWÐ2ÑUÔUˆEØð 	XÝ Ð!VÑWÔWÐWð ˆØÔ Ò'Ð'Ø×*Ò*¨5Ñ1Ô1ˆFˆFØÔ )Ò+Ð+Ø×)Ò)¨%Ñ0Ô0ˆFˆFå Ð!~ÐPTÔPaÐ!~Ð!~Ð!~ÑÔÐð ð 		ð 		ˆAàŒv˜Ô.Ð.Ð.ØÐ$Ô$¨¨Ñ+Ð$Ô$Øð ”×#Ò# A¤F¨DÑ1Ô1ˆBØð Ø��1‘”�øð @bð  @bð  @bð  @bˆð Avð  Avð  Avð  AvˆàEÐEÐEÐE°4´9·?²?Ñ3DÔ3DÐEÑEÔEˆŒ	ð
ð 
ð 
ð 
àÔ)×/Ò/Ñ1Ô1ð
ñ 
ô 
ˆÔð !qÐ pÐ pÐ pÐZ^ÔZoÐ pÑ pÔ pˆÔð
ð 
ð 
ð 
ð
 œ
×(Ò(Ñ*Ô*ð
ñ 
ô 
ˆŒ
ð ”<×&Ò&Ñ(Ô(ð 	8ð 	8ˆCð PDð  PDð  PDð  PDˆKÝ2°3´8¸TÈsÐSÑSÔSˆCŒHÝ2°3´8¸TÈsÐSÑSÔSˆCŒHð ”Ð+ðð ð ð ð Ø36´>×3GÒ3GÑ3IÔ3Iðñ ô ð à15ð ŒNð &˜+ c¤k°3Ñ7Ô7ˆCŒKˆKàÔ'ð 		Hð 		HˆDØ'˜<¨Ô(9Ñ:Ô:ˆDŒLØ”<ˆDØAÐAÐAÐA°D´LÐAÑAÔAˆDŒLÝ # D¤L°$Ñ 7Ô 7ð ð ‘�˜Ø˜1”: Ò#Ð#Ý(Ø~÷  Fò  Fð  GJð  KLô  GMñ  Nô  Nñô ð ð $ð bfÔaqÐa}�tÕ$?ÅÀDÔDTÑ@UÔ@UÐW[Ñ$\Ô$\Ñ]Ô]Ð]ð  DHˆDÔÐð ”<×&Ò&Ñ(Ô(ð 	#ð 	#ˆCØ× Ò Ñ"Ô"Ð"Ð"ð	#ð 	#r!   Úvar_listc                ó@   — |D ]}|| j         v r| j         |         c S Œg S r   ©r}   )r   rÚ   rD   s      r   Úget_first_cmake_var_ofz'CMakeTraceParser.get_first_cmake_var_ofø   s:   € àð 	$ð 	$ˆAØ�D”Iˆ~ˆ~Ø”y ”|Ð#Ð#Ð#ð ð ˆ	r!   Úvarc                ó2   — || j         v r| j         |         S g S r   rÜ   ©r   rÞ   s     r   Úget_cmake_varzCMakeTraceParser.get_cmake_var   s    € à�$”)ÐÐØ”9˜S”>Ð!àˆ	r!   c                óX   — || j         v r | j         |         r| j         |         d         S d S )Nr   rÜ   rà   s     r   Ú
var_to_strzCMakeTraceParser.var_to_str  s0   € Ø�$”)ÐÐ ¤	¨#¤ÐØ”9˜S”> !Ô$Ð$àˆtr!   ÚexprúT.Union[str, T.List[str]]c                ó¦   — |sdS t          |t          ¦  «        r	|d         }n|}|                     ¦   «         }|dvo|                     d¦  «         S )NFr   )Ú0ÚOFFÚNOÚFALSEÚNÚIGNOREÚNOTFOUND)Ú
isinstanceÚlistÚupperÚendswith)r   rä   Úexpr_strs      r   Ú_str_to_boolzCMakeTraceParser._str_to_bool  sd   € Øð 	Ø�5Ý�d�DÑ!Ô!ð 	Ø˜A”wˆHˆHàˆHØ—>’>Ñ#Ô#ˆØÐIÐIÐoÐRZ×RcÒRcÐdnÑRoÔRoÐNoÐor!   c                ó^   — |                       | j                             |g ¦  «        ¦  «        S r   )ró   r}   rÏ   rà   s     r   Úvar_to_boolzCMakeTraceParser.var_to_bool  s&   € Ø× Ò  ¤§¢¨s°BÑ!7Ô!7Ñ8Ô8Ð8r!   ÚfunctionÚerrorr;   r   c                ó~   — | j         rt          j        d|› d|› d|› �¦  «         d S t          d|› d|› d|› �¦  «        ‚)NzCMake trace warning: z() ú
zCMake: )rf   r   Údebugr   )r   rö   r÷   r;   s       r   Ú_gen_exceptionzCMakeTraceParser._gen_exception  sc   € ð Œ?ð 	ÝŒJÐL¨xÐLÐL¸EÐLÐLÀUÐLÐLÑMÔMÐMØ�4ÝÐD xÐDÐD°EÐDÐD¸UÐDÐDÑEÔEÐEr!   c                óò  — d}d|j         v }	 |j                              d¦  «        }|j         |dz            }n# t          t          f$ r Y nw xY wg }|j         D ](}|r|dk    rŒ|dk    r n|                     |¦  «         Œ)t          |¦  «        dk     r|                      dd|¦  «        S |                     d¦  «        }d	                     |¦  «        }|r6|| j	        vs|r+t          |                     d
¦  «        |¦  «        | j	        |<   |s|| j        v r
| j        |= dS dS |                     d
¦  «        | j        |<   |                     d
¦  «        | j                             |j        i ¦  «        |<   dS )a[  Handler for the CMake set() function in all variaties.

        comes in three flavors:
        set(<var> <value> [PARENT_SCOPE])
        set(<var> <value> CACHE <type> <docstring> [FORCE])
        set(ENV{<var>} <value>)

        We don't support the ENV variant, and any uses of it will be ignored
        silently. the other two variates are supported, with some caveats:
        - we don't properly handle scoping, so calls to set() inside a
          function without PARENT_SCOPE set could incorrectly shadow the
          outer scope.
        - We don't honor the type of CACHE arguments
        NÚFORCEÚCACHEr   ÚPARENT_SCOPErj   úrequires at least one argumentr   ú rN   )r   ÚindexÚ
ValueErrorÚ
IndexErrorÚappendÚlenrû   Úpopr­   r€   r/   r®   r}   r~   Ú
setdefaultr   )	r   r;   Ú
cache_typeÚcache_forceÚ	cache_idxr   rD   Ú
identifierr0   s	            r   r‰   zCMakeTraceParser._cmake_set"  s¶  € ð" ˆ
Ø ¤Ð+ˆð	Øœ
×(Ò(¨Ñ1Ô1ˆIØœ I°¡MÔ2ˆJˆJøÝ�JÐ'ð 	ð 	ð 	ØˆDð	øøøð ˆØ”ð 	ð 	ˆAØð ˜˜^Ò+Ð+Øð �GŠ|ˆ|Ø�à�KŠK˜‰NŒNˆNˆNåˆt‰9Œ9�qŠ=ˆ=Ø×&Ò& uÐ.NÐPUÑVÔVÐVð —X’X˜a‘[”[ˆ
Ø—’˜‘”ˆð ð 	Wà ¤Ð+Ð+¨{Ð+Ý)8¸¿ºÀSÑ9IÔ9IÈ:Ñ)VÔ)V�”
˜:Ñ&àð 	Xà˜TœYÐ&Ð&Ø”I˜jÐ)Ð)Ð)ð 'Ð&ð %*§K¢K°Ñ$4Ô$4ˆDŒI�jÑ!ØGLÇ{Â{ÐSVÑGWÔGWˆDÔ×(Ò(¨¬°RÑ8Ô8¸ÑDÐDÐDs   �*8 ¸AÁAc                ó¶   — t          |j        ¦  «        dk     r|                      dd|¦  «        S |j        d         | j        v r| j        |j        d         = d S d S )Nr   rk   r   r   )r  r   rû   r}   ©r   r;   s     r   rŠ   zCMakeTraceParser._cmake_unset_  s`   € åˆuŒz‰?Œ?˜QÒÐØ×&Ò& wÐ0PÐRWÑXÔXÐXàŒ:�aŒ=˜DœIÐ%Ð%Ø”	˜%œ* Qœ-Ð(Ð(Ð(ð &Ð%r!   c                ó6  — t          |j        ¦  «        }d}d|vr|                      dd|¦  «        S |                     d¦  «         t	          |¦  «        dk     r|                      dd|¦  «        S t          |d         di ||¬	¦  «        | j        |d         <   d S )
NTÚIMPORTEDrl   z*non imported executables are not supportedr   úrequires at least 1 argumentr   Ú
EXECUTABLE©r;   r9   )rï   r   rû   Úremover  r4   r   )r   r;   r   Úis_importeds       r   r‹   z&CMakeTraceParser._cmake_add_executableg  s¨   € å�E”JÑÔˆð ˆØ˜TÐ!Ð!Ø×&Ò&Ð'7Ð9eÐglÑmÔmÐmà�Š�JÑÔÐåˆt‰9Œ9�qŠ=ˆ=Ø×&Ò&Ð'7Ð9WÐY^Ñ_Ô_Ð_å +¨D°¬G°\À2ÈUÐ]hÐ iÑ iÔ iˆŒ�T˜!”WÑÐÐr!   c                ó`  — t          |j        ¦  «        }d|v rk|                     d¦  «         t          |¦  «        dk     r|                      dd|¦  «        S t          |d         di |d|v ¬¦  «        | j        |d         <   d S d|v ro|                     d¦  «         t          |¦  «        dk     r|                      dd	|¦  «        S t          |d         |d         i |d
¬¦  «        | j        |d         <   d S d|v rq|                     d¦  «         t          |¦  «        dk     r|                      dd	|¦  «        S t          |d         dd|d         gi|¬¦  «        | j        |d         <   d S d|v r|                      dd|¦  «        S t          |d         di |¬¦  «        | j        |d         <   d S )NÚ	INTERFACEr   rm   z$interface library name not specifiedr   r  r  r   zrequires at least 2 argumentsTÚALIASÚINTERFACE_LINK_LIBRARIES)r;   ÚOBJECTz"OBJECT libraries are not supportedÚNORMAL)rï   r   r  r  rû   r4   r   ©r   r;   r   s      r   rŒ   z#CMakeTraceParser._cmake_add_libraryw  sÜ  € å�E”JÑÔˆð ˜$ÐÐØ�KŠK˜Ñ$Ô$Ð$å�4‰yŒy˜1Š}ˆ}Ø×*Ò*¨=Ð:`ÐbgÑhÔhÐhå$/°°Q´¸ÀbÐPUÐ`jÐnrÐ`rÐ$sÑ$sÔ$sˆDŒL˜˜aœÑ!Ð!Ð!Ø˜4ÐÐØ�KŠK˜
Ñ#Ô#Ð#õ �4‰yŒy˜1Š}ˆ}Ø×*Ò*¨=Ð:YÐ[`ÑaÔaÐaå$/°°Q´¸¸a¼À"ÈEÐ\`Ð$aÑ$aÔ$aˆDŒL˜˜aœÑ!Ð!Ð!Ø˜ˆ_ˆ_Ø�KŠK˜Ñ Ô Ð õ �4‰yŒy˜1Š}ˆ}Ø×*Ò*¨=Ð:YÐ[`ÑaÔaÐaõ %0°°Q´¸ÐC]Ð`dÐefÔ`gÐ_hÐBiÐqvÐ$wÑ$wÔ$wˆDŒL˜˜aœÑ!Ð!Ð!Ø˜ÐÐØ×&Ò& }Ð6ZÐ\aÑbÔbÐbå$/°°Q´¸À2ÈUÐ$SÑ$SÔ$SˆDŒL˜˜aœÑ!Ð!Ð!r!   r5   c                óŽ  ‡ ‡— ‰                       t          |j        ¦  «        ¦  «        }|s‰                      dd|¦  «        S |d         dk    r‰                      dd|¦  «        S g d¢}t	          |¦  «        }dd„}dd„}dd„}d Šdˆfd„}	d }
|D ]L}||v r8|dk    r|}
n.|dk    r|}
n%|dk    r|	}
n|dk    r|}
|xj        g gz  c_        nd }
Œ>|
� |
||¦  «         ŒM‰                      d¦  «        }‰                      d¦  «        }‰rt          ‰¦  «        nd |_        |rt          |¦  «        nd |_	        |rt          |¦  «        nd |_
        ‰                      |j        ¦  «        |_        ‰                      |j        ¦  «        |_        ˆ fd„|j        D ¦   «         |_        ‰ xj        |gz  c_        |r|‰ j        |<   d S d S )Nrn   r  r   ÚTARGETz(TARGET syntax is currently not supported)ÚOUTPUTÚCOMMANDÚMAIN_DEPENDENCYÚDEPENDSÚ
BYPRODUCTSÚIMPLICIT_DEPENDSÚWORKING_DIRECTORYÚCOMMENTÚDEPFILEÚJOB_POOLÚVERBATIMÚAPPENDÚUSES_TERMINALÚCOMMAND_EXPAND_LISTSrR   r   ÚtargetrV   r   r   c                ó(   — |xj         | gz  c_         d S r   )r[   ©rR   r-  s     r   Úhandle_outputzACMakeTraceParser._cmake_add_custom_command.<locals>.handle_outputª  s   € ØÐÔ C 5Ñ(ÐÔÐÐr!   c                óB   — | dk    rd S |j         dxx         | gz  cc<   d S )NÚARGSéÿÿÿÿ)r\   r/  s     r   Úhandle_commandzBCMakeTraceParser._cmake_add_custom_command.<locals>.handle_command­  s6   € Ø�fŠ}ˆ}Ø�ØŒN˜2ÐÐÔ 3 %Ñ'ÐÐÑÐÐr!   c                ó(   — |xj         | gz  c_         d S r   )r>   r/  s     r   Úhandle_dependszBCMakeTraceParser._cmake_add_custom_command.<locals>.handle_depends²  s   € ØˆNŒN˜s˜eÑ#ˆNŒNˆNˆNr!   c                ó(   •— ‰€| Šd S ‰dz  Š‰| z  Šd S )Nr  r-   )rR   r-  r]   s     €r   Úhandle_working_dirzFCMakeTraceParser._cmake_add_custom_command.<locals>.handle_working_dir·  s*   ø€ àÐ"Ø!���à˜sÑ"�Ø˜sÑ"���r!   r  r"  r%  r   Ú!MESON_PS_CMAKE_CURRENT_BINARY_DIRÚ!MESON_PS_CMAKE_CURRENT_SOURCE_DIRc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r-   )Ú_guess_filesr¿   s     €r   rL   z>CMakeTraceParser._cmake_add_custom_command.<locals>.<listcomp>Û  s'   ø€ ÐGÐGÐG°1˜$×+Ò+¨AÑ.Ô.ÐGÐGÐGr!   )rR   r   r-  rV   r   r   )Ú_flatten_argsrï   r   rû   rV   r\   rã   r   r]   r?   r@   r<  r[   r>   r‚   r   )r   r;   r5   r   Ú
magic_keysr-  r0  r4  r6  r8  rÔ   rD   Úcbinary_dirÚcsource_dirr]   s   `             @r   r�   z*CMakeTraceParser._cmake_add_custom_command™  s  øø€ à×!Ò!¥$ u¤zÑ"2Ô"2Ñ3Ô3ˆàð 	dØ×&Ò&Ð';Ð=[Ð]bÑcÔcÐcð �Œ7�hÒÐØ×&Ò&Ð';Ð=gÐinÑoÔoÐoðað að aˆ
õ & dÑ+Ô+ˆð	)ð 	)ð 	)ð 	)ð	(ð 	(ð 	(ð 	(ð
	$ð 	$ð 	$ð 	$ð ˆð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð ˆàð 	ð 	ˆAØ�JˆˆØ˜’=�=Ø&�B�BØ˜)’^�^Ø'�B�BØÐ-Ò-Ð-Ø+�B�BØ˜)’^�^Ø'�BØ�N”N r dÑ*�N”N�Nà�BØàˆ~Ø��1�f‘”�øà—o’oÐ&IÑJÔJˆØ—o’oÐ&IÑJÔJˆà2=ÐG�T +Ñ.Ô.Ð.À4ˆÔØ6AÐ!K¥ kÑ!2Ô!2Ð!2ÀtˆÔØ6AÐ!K¥ kÑ!2Ô!2Ð!2ÀtˆÔØ"×/Ò/°Ô0CÑDÔDˆÔØ×*Ò*¨6¬>Ñ:Ô:ˆŒØGÐGÐGÐG¸¼ÐGÑGÔGˆŒàÐÔ ˜xÑ'ÐÔØð 	(Ø!'ˆDŒL˜ÑÐÐð	(ð 	(r!   c                ó¦   — t          |j        ¦  «        dk     r|                      dd|¦  «        S |                      ||j        d         ¦  «         d S )Nr   ro   r   r   )r  r   rû   r�   r  s     r   rŽ   z)CMakeTraceParser._cmake_add_custom_targetá  sV   € õ ˆuŒz‰?Œ?˜QÒÐØ×&Ò&Ð':Ð<\Ð^cÑdÔdÐdð 	×&Ò& u¨e¬j¸¬mÑ<Ô<Ð<Ð<Ð<r!   c                ó¤  ‡ ‡‡
‡‡— t          ‰j        ¦  «        }|                     d¦  «        }dŠ
g }|r=|                     d¦  «        }|dv rdŠ
Œ|dk    rn||                     d¦  «        z  }|°=|s‰                      dd‰¦  «        S t          |¦  «        d	k    rd S |                     d¦  «        Š‰ j        d
k    r)d                     |¦  «                             d¦  «        Šnd„ |D ¦   «         Š‰sd S dˆ
ˆˆ ˆˆfd„}dˆˆ ˆfd„}|dk    r|D ]} ||¦  «         Œd S |dk    r%‰                      |¦  «        }	|	D ]} ||¦  «         Œd S d S )Nr   F>   r*  ÚAPPEND_STRINGTÚPROPERTYrN   rp   zfaild to parse argument listr   ri   r  c                óB   — g | ]}|                      d ¦  «        D ]}|‘ŒŒS )rN   ©r®   )rJ   rK   Úys      r   rL   z8CMakeTraceParser._cmake_set_property.<locals>.<listcomp>
  s/   € Ð;Ð;Ð;˜1¨a¯gªg°c©l¬lÐ;Ð;¨�QÐ;Ð;Ð;Ð;r!   rÅ   r   r   r   c                óÖ   •— | ‰j         vr‰                     dd| › d�‰¦  «        S ‰j         |          }‰|j        vr
g |j        ‰<   ‰r|j        ‰xx         ‰z  cc<   d S ‰|j        ‰<   d S )Nrp   úTARGET ú
 not found)r   rû   r7   )rÅ   rÇ   r  r  r   r;   r0   s     €€€€€r   Ú	do_targetz7CMakeTraceParser._cmake_set_property.<locals>.do_target  s—   ø€ Ø˜œÐ$Ð$Ø×*Ò*¨>Ð;RÀQÐ;RÐ;RÐ;RÐTYÑZÔZÐZà”,˜q”/ˆCØ ¤Ð/Ð/Ø-/�”˜zÑ*àð 3Ø”˜zÐ*Ð*Ô*¨eÑ3Ð*Ð*Ñ*Ð*Ð*à-2�”˜zÑ*Ð*Ð*r!   rØ   c                ób  •— ‰dk    s‰                      ‰¦  «        sd S ‰                     d¦  «        }|s(t          j        t	          j        d¦  «        ¦  «         d}t          |¦  «        }t          | ¦  «        }|                     ¦   «         s||z  }‰j         	                    |¦  «         d S )NÚHEADER_FILE_ONLYr:  zÔ                    CMake trace: set_property(SOURCE) called before the preload script was loaded.
                    Unable to determine CMAKE_CURRENT_SOURCE_DIR. This can lead to build errors.
                ú.)
ró   rã   r   Úwarningr�   rž   r   Úis_absoluter�   Úadd)rØ   r@   Úcur_pÚsrc_pr  r   r0   s       €€€r   Ú	do_sourcez7CMakeTraceParser._cmake_set_property.<locals>.do_source  sÁ   ø€ ØÐ/Ò/Ð/°t×7HÒ7HÈÑ7OÔ7OÐ/Ø�à"ŸošoÐ.QÑRÔRˆOØ"ð &Ý”�Xœ_ð .ñ ô ñ ô ð ð #&�å˜Ñ)Ô)ˆEÝ˜‘I”IˆEà×$Ò$Ñ&Ô&ð &Ø ™�ØÔ!×%Ò% eÑ,Ô,Ð,Ð,Ð,r!   r  ÚSOURCE)rÅ   r   r   r   )rØ   r   r   r   )	rï   r   r  r®   rû   r  r…   r­   r<  )r   r;   r   Úscoper   ÚcurrrK  rT  rD   Úfilesr  r  r0   s   ``        @@@r   r�   z$CMakeTraceParser._cmake_set_propertyê  sú  øøøøø€ å�E”JÑÔˆà—’˜‘”ˆàˆØˆØð 	'Ø—8’8˜A‘;”;ˆDð Ð2Ð2Ð2Ø�Øà�zÒ!Ð!Øà�t—z’z #‘”Ñ&ˆGð ð 	'ð ð 	^Ø×&Ò& ~Ð7UÐW\Ñ]Ô]Ð]åˆt‰9Œ9˜Š>ˆ>àˆFà—X’X˜a‘[”[ˆ
ØÔ Ò'Ð'Ø—H’H˜T‘N”N×(Ò(¨Ñ-Ô-ˆEˆEà;Ð; Ð;Ñ;Ô;ˆEØð 	ØˆFð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð& �HÒÐØð ð �Ø�	˜!‘”��ðð à�hÒÐØ×%Ò% gÑ.Ô.ˆEØð ð �Ø�	˜!‘”��ð Ððð r!   c                ó^  — t          |j        ¦  «        }g }|r3|                     d¦  «        }|dk    rn|                     |¦  «         |°3g }| j        dk    rÞ|                     d¦  «        }g }t          j        d¦  «        }|D ]p}	|                     |	¦  «        rD|r=|                     |d                     |¦  «         	                    d¦  «        f¦  «         |	}g }Œ[|                     |	¦  «         Œq|r=|                     |d                     |¦  «         	                    d¦  «        f¦  «         n,d„ t          |d d d…         |d	d d…         ¦  «        D ¦   «         }|D ]G\  }}
|D ]?}|| j        vr|                      d
d|› d�|¦  «        c c S |
| j        |         j        |<   Œ@ŒHd S )Nr   Ú
PROPERTIESri   z	^[A-Z_]+$r  rN   c                óT   — g | ]%}|d          |d                               d¦  «        f‘Œ&S )r   r   rN   rF  rI   s     r   rL   zACMakeTraceParser._cmake_set_target_properties.<locals>.<listcomp>b  s/   € ÐSÐSÐS°1˜˜!œ˜a œdŸjšj¨™oœoÐ.ÐSÐSÐSr!   r   r   rq   rI  rJ  )rï   r   r  r  r…   ÚreÚcompileÚmatchr­   r®   rÑ   r   rû   r7   )r   r;   r   r   rW  Úarglistr5   rÐ   Ú
prop_regexÚar0   rD   s               r   r�   z-CMakeTraceParser._cmake_set_target_properties6  s  € å�E”JÑÔˆàˆØð 	!Ø—8’8˜A‘;”;ˆDØ�|Ò#Ð#Øà�NŠN˜4Ñ Ô Ð ð ð 	!ð. ˆØÔ Ò'Ð'Ø—8’8˜A‘;”;ˆDØˆFÝœ LÑ1Ô1ˆJØð %ð %�Ø×#Ò# AÑ&Ô&ð %Øð LØŸš¨¨c¯hªh°vÑ.>Ô.>×.DÒ.DÀSÑ.IÔ.IÐ'JÑKÔKÐKØ�DØ�F�Fà—M’M !Ñ$Ô$Ð$Ð$Øð DØ—’  c§h¢h¨vÑ&6Ô&6×&<Ò&<¸SÑ&AÔ&AÐBÑCÔCÐCøàSÐS½¸DÀÀÀ1À¼IÀtÈAÈDÈqÈDÄzÑ8RÔ8RÐSÑSÔSˆGà"ð 	9ð 	9‰KˆD�%Øð 9ð 9�Ø˜DœLÐ(Ð(Ø×.Ò.Ð/FÐH_ÐRSÐH_ÐH_ÐH_ÐafÑgÔgÐgÐgÐgÐgÐgà38�”˜Q”Ô*¨4Ñ0Ð0ð	9ð	9ð 	9r!   c                óT  — t          |j        ¦  «        }t          |¦  «        dk     r|                      dd|¦  «        S | j                             |d         ¦  «        }|s|                      dd|¦  «        S |dd …         D ]%}|xj        |                     d¦  «        z  c_        Œ&d S )Nr   rw   ztakes at least 2 argumentsr   ztarget not foundr   rN   )rï   r   r  rû   r   rÏ   r>   r®   )r   r;   r   r-  rD   s        r   r–   z(CMakeTraceParser._cmake_add_dependenciesk  s´   € å�E”JÑÔˆåˆt‰9Œ9�qŠ=ˆ=Ø×&Ò&Ð'9Ð;WÐY^Ñ_Ô_Ð_à”×!Ò! $ q¤'Ñ*Ô*ˆØð 	VØ×&Ò&Ð'9Ð;MÈuÑUÔUÐUà�a�b�b”ð 	+ð 	+ˆAØˆNŒN˜aŸgšg c™lœlÑ*ˆNŒNˆNð	+ð 	+r!   c                ó6   — |                       ddd|¦  «         d S )Nrr   ÚCOMPILE_DEFINITIONSÚINTERFACE_COMPILE_DEFINITIONS©Ú_parse_common_target_optionsr  s     r   r‘   z2CMakeTraceParser._cmake_target_compile_definitionsy  s9   € à×)Ò)Ð*FÐH]Ð_~ð  AFñ  	Gô  	Gð  	Gð  	Gð  	Gr!   c                ó6   — |                       ddd|¦  «         d S )Nrs   ÚCOMPILE_OPTIONSÚINTERFACE_COMPILE_OPTIONSrf  r  s     r   r’   z.CMakeTraceParser._cmake_target_compile_options}  s&   € à×)Ò)Ð*BÐDUÐWrÐtyÑzÔzÐzÐzÐzr!   c                ó@   — |                       ddd|ddgd¬¦  «         d S )Nrt   ÚINCLUDE_DIRECTORIESÚINTERFACE_INCLUDE_DIRECTORIESÚSYSTEMÚBEFORET)r¨   Úpathsrf  r  s     r   r“   z2CMakeTraceParser._cmake_target_include_directories�  sX   € à×)Ò)Ð*FÐH]Ð_~ð  AFð  PXð  Zbð  Ocð  koÐ)ñ  	pô  	pð  	pð  	pð  	pr!   c                ó6   — |                       ddd|¦  «         d S )Nrv   ÚLINK_OPTIONSÚINTERFACE_LINK_OPTIONSrf  r  s     r   r•   z+CMakeTraceParser._cmake_target_link_options…  s%   € à×)Ò)Ð*?ÀÐQiÐkpÑqÔqÐqÐqÐqr!   c                ó6   — |                       ddd|¦  «         d S )Nrv   ÚLINK_LIBRARIESr  rf  r  s     r   r”   z-CMakeTraceParser._cmake_target_link_libraries‰  s&   € à×)Ò)Ð*?ÐAQÐSmÐotÑuÔuÐuÐuÐur!   c                ó:  — t          |j        ¦  «        }t          |¦  «        dk     r|                      dd|¦  «        S |d                              ¦   «                              ¦   «         dvrd S | xj        d                     |dd …         ¦  «        gz  c_        d S )Nr   rx   ztakes at least 1 argumentr   )ÚFATAL_ERRORÚ
SEND_ERRORr  )rï   r   r  rû   rð   rH   r†   r­   r  s      r   r—   zCMakeTraceParser._cmake_message�  s�   € å�E”JÑÔˆåˆt‰9Œ9�qŠ=ˆ=Ø×&Ò& yÐ2MÈuÑUÔUÐUà�Œ7�=Š=‰?Œ?× Ò Ñ"Ô"Ð*GÐGÐGØˆFàˆŒ˜Ÿš  a b b¤Ñ*Ô*Ð+Ñ+ˆŒˆˆr!   Fr   Úprivate_propÚinterface_propr¨   úT.Optional[T.List[str]]rp  c                óò  — |€dg}t          |j        ¦  «        }t          |¦  «        dk     r|                      |d|¦  «        S |d         }|| j        vr|                      |d|› d�|¦  «        S g }	g }
d}|dd …         D ]F}||v rŒ|dv r|}Œ|d	v r|	|                     d
¦  «        z  }	|dv r|
|                     d
¦  «        z  }
ŒG|r*|                      |	¦  «        }	|                      |
¦  «        }
d„ |	D ¦   «         }	d„ |
D ¦   «         }
||
f||	ffD ]c}|d         | j        |         j        vrg | j        |         j        |d         <   | j        |         j        |d         xx         |d         z  cc<   Œdd S )Nro  r   r   r   rI  rJ  ÚPUBLIC>   r}  ÚPRIVATEr  ÚLINK_PUBLICÚLINK_PRIVATEÚLINK_INTERFACE_LIBRARIES>   r}  r  r  r�  rN   >   r}  r~  r€  c                ó   — g | ]}|¯|‘ŒS r-   r-   rI   s     r   rL   zACMakeTraceParser._parse_common_target_options.<locals>.<listcomp>¼  s   € Ð/Ð/Ð/˜1¨QÐ/�QÐ/Ð/Ð/r!   c                ó   — g | ]}|¯|‘ŒS r-   r-   rI   s     r   rL   zACMakeTraceParser._parse_common_target_options.<locals>.<listcomp>½  s   € Ð+Ð+Ð+˜¨Ð+�1Ð+Ð+Ð+r!   )rï   r   r  rû   r   r®   r<  r7   )r   r   ry  rz  r;   r¨   rp  r   r-  Ú	interfaceÚprivateÚmoderD   Újs                 r   rg  z-CMakeTraceParser._parse_common_target_options™  sä  € Øˆ>Ø�ZˆFå�E”JÑÔˆåˆt‰9Œ9�qŠ=ˆ=Ø×&Ò& tÐ-MÈuÑUÔUÐUà�a”ˆØ˜œÐ%Ð%Ø×&Ò& tÐ-I°vÐ-IÐ-IÐ-IÈ5ÑQÔQÐQàˆ	ØˆàˆØ�a�b�b”ð 	(ð 	(ˆAØ�Fˆ{ˆ{ØàÐqÐqÐqØ�ØàÐYÐYÐYØ˜QŸWšW S™\œ\Ñ)�	àÐ<Ð<Ð<Ø˜1Ÿ7š7 3™<œ<Ñ'�øàð 	1Ø×)Ò)¨)Ñ4Ô4ˆIØ×'Ò'¨Ñ0Ô0ˆGà/Ð/ 	Ð/Ñ/Ô/ˆ	Ø+Ð+˜gÐ+Ñ+Ô+ˆà Ð)¨N¸IÐ+FÐGð 	:ð 	:ˆAØ�Q”4˜4œ<¨Ô/Ô:Ð:Ð:Ø8:�”˜VÔ$Ô/°°!´Ñ5àŒL˜Ô Ô+¨A¨a¬DÐ1Ð1Ô1°Q°q´TÑ9Ð1Ð1Ñ1Ð1ð		:ð 	:r!   c                ó‚   — | j         D ]/}| j                             |j        d ¦  «        }|r ||¦  «         Œ0g | _         d S r   )rˆ   r›   rÏ   r   )r   r;   rÓ   rÔ   s       r   r˜   z0CMakeTraceParser._meson_ps_execute_delayed_callsÅ  sS   € ØÔ%ð 	ð 	ˆAØ”×#Ò# A¤F¨DÑ1Ô1ˆBØð Ø��1‘”�øð  "ˆÔÐÐr!   c                ó:   — |                       d¦  «        | _        d S )NÚMESON_PS_DELAYED_CALLS)rá   r‡   r  s     r   r™   z&CMakeTraceParser._meson_ps_reload_varsÎ  s   € Ø $× 2Ò 2Ð3KÑ LÔ LˆÔÐÐr!   c                óš   — t          |j        ¦  «        }|st          j        d¦  «         d S t          j        d|d         › d�¦  «         d S )Nz_Invalid preload.cmake script! At least one argument to `meson_ps_disabled_function` is expectedzThe CMake function "r   z8" was disabled to avoid compatibility issues with Meson.)rï   r   r   r÷   rO  r  s      r   rš   z,CMakeTraceParser._meson_ps_disabled_functionÑ  sU   € Ý�E”JÑÔˆØð 	ÝŒJÐxÑyÔyÐyØˆFÝŒÐm¨D°¬GÐmÐmÐmÑnÔnÐnÐnÐnr!   ú'T.Generator[CMakeTraceLine, None, None]c              #  óò  K  — t          j        dt           j        ¦  «        }t          j        d¦  «        }d}|t          |¦  «        k     �r+|                     ||¦  «        }|sS|                     ||¦  «        }|s&t          ||d …         ¦  «         t          d¦  «        ‚|                     ¦   «         }Œ|                     ¦   «         }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }	|                     d¦  «        }
|
 	                    d	¦  «        }d
„ |D ¦   «         }t          |t          |¦  «        |	|¦  «        V — |t          |¦  «        k     �°)d S d S )Nz>\s*(.*\.(cmake|txt))\(([0-9]+)\):\s*(\w+)\(([\s\S]*?) ?\)\s*\nz[^\n]*\nr   zFailed to parse CMake tracer   é   é   é   r  c                ó6   — g | ]}|                      ¦   «         ‘ŒS r-   rG   )rJ   ra  s     r   rL   z5CMakeTraceParser._lex_trace_human.<locals>.<listcomp>ï  s    € Ð,Ð,Ð, !�A—G’G‘I”IÐ,Ð,Ð,r!   )r\  r]  Ú	MULTILINEr  r^  Úprintr   ÚendÚgroupr®   r   r   )r   r¥   Ú	reg_tlineÚ	reg_otherÚlocÚmo_file_lineÚ
skip_matchr   r   r   r   Úargls               r   rÍ   z!CMakeTraceParser._lex_trace_humanØ  sm  è è € å”JÐ`ÕbdÔbnÑoÔoˆ	Ý”J˜{Ñ+Ô+ˆ	ØˆØ•C˜‘J”JÒÑØ$Ÿ?š?¨5°#Ñ6Ô6ˆLØð Ø&Ÿ_š_¨U°CÑ8Ô8�
Ø!ð HÝ˜%   œ+Ñ&Ô&Ð&Ý(Ð)FÑGÔGÐGà —n’nÑ&Ô&�Øà×"Ò"Ñ$Ô$ˆCà×%Ò% aÑ(Ô(ˆDØ×%Ò% aÑ(Ô(ˆDØ×%Ò% aÑ(Ô(ˆDØ×%Ò% aÑ(Ô(ˆDØ—:’:˜c‘?”?ˆDØ,Ð, tÐ,Ñ,Ô,ˆDå  ¥s¨4¡y¤y°$¸Ñ=Ô=Ð=Ð=Ð=ð) •C˜‘J”JÒÑÐÐÐÐr!   c              #  ó  K  — |                      d¬¦  «        }|                     d¦  «         |D ]Ô}t          j        |¦  «        }t	          |d         t
          ¦  «        sJ ‚t	          |d         t          ¦  «        sJ ‚t	          |d         t
          ¦  «        sJ ‚t	          |d         t          ¦  «        sJ ‚|d         }|D ]}t	          |t
          ¦  «        sJ ‚Œt          |d         |d         |d         |¦  «        V — ŒÕd S )NF)Úkeependsr   r   r   Úcmdr   )	Ú
splitlinesr  ÚjsonÚloadsrî   r   r   rï   r   )r   r¥   ÚlinesrD   Údatar   r‡  s          r   rÎ   z CMakeTraceParser._lex_trace_jsonó  s  è è € Ø× Ò ¨%Ð Ñ0Ô0ˆØ�	Š	�!‰ŒˆØð 		Pð 		PˆAÝ”:˜a‘=”=ˆDÝ˜d 6œl­CÑ0Ô0Ð0Ð0Ð0Ý˜d 6œl­CÑ0Ô0Ð0Ð0Ð0Ý˜d 5œk­CÑ0Ô0Ð0Ð0Ð0Ý˜d 6œl­DÑ1Ô1Ð1Ð1Ð1Ø˜”<ˆDØð *ð *�Ý! !¥SÑ)Ô)Ð)Ð)Ð)Ð)Ý   f¤¨t°F¬|¸TÀ%¼[È$ÑOÔOÐOÐOÐOÐOð		Pð 		Pr!   r   c                óD   — g }|D ]}||                      d¦  «        z  }Œ|S r«   rF  )r   r   ÚresrD   s       r   r=  zCMakeTraceParser._flatten_args  s1   € àˆØð 	 ð 	 ˆAØ�1—7’7˜3‘<”<ÑˆCˆCØˆ
r!   Úbroken_listc                ó  — | j         dk    r|S t          j        d¦  «        }t          j        d¦  «        }g }d }d}|D ]Â}|€|}d}Œ	t          |¦  «                             ¦   «         r||gz  }|}d}Œ5|                     |¦  «        s||gz  }|}d}ŒU|                     |¦  «        r|› d|› �}||gz  }d }d}Œ|t          |› d|› �¦  «                             ¦   «         r
|› d|› �}d}Œ¬|r||gz  }|}d}Œ¹|› d|› �}d}ŒÃ|r||gz  }|S )Nri   z^([A-Za-z]:)?/(.*/)*[^./]+$z^.*\.[a-zA-Z]+$Fr  T)r…   r\  r]  r   rË   r^  rÊ   )r   r¦  Ú	reg_startÚreg_endÚ
fixed_listÚcurr_strÚ
path_foundrD   s           r   r<  zCMakeTraceParser._guess_files  s�  € àÔ Ò'Ð'ØÐõ ”JÐ=Ñ>Ô>ˆ	Ý”*Ð/Ñ0Ô0ˆàˆ
ØˆØˆ
àð 	#ð 	#ˆAØÐØ�Ø"�
�
Ý�h‘”×'Ò'Ñ)Ô)ð #à˜x˜jÑ(�
Ø�Ø"�
�
Ø—_’_ XÑ.Ô.ð #à˜x˜jÑ(�
Ø�Ø"�
�
Ø—’˜qÑ!Ô!ð #à&Ð,Ð,¨Ð,Ð,�Ø˜x˜jÑ(�
Ø�Ø"�
�
Ý˜Ð'Ð' AÐ'Ð'Ñ(Ô(×/Ò/Ñ1Ô1ð #à&Ð,Ð,¨Ð,Ð,�Ø!�
�
Øð #à˜x˜jÑ(�
Ø�Ø"�
�
à&Ð,Ð,¨Ð,Ð,�Ø"�
�
àð 	%Ø˜8˜*Ñ$ˆJØÐr!   )T)
rb   r   rc   r   rd   re   rf   r:   r   r   )r   r   )r   r:   r   )r¥   r¦   r   r   )rÚ   r   r   r   )rÞ   r   r   r   )rÞ   r   r   r¦   )rä   rå   r   r:   )rÞ   r   r   r:   )rö   r   r÷   r   r;   r   r   r   )r;   r   r   r   )r;   r   r5   r¦   r   r   )NF)r   r   ry  r   rz  r   r;   r   r¨   r{  rp  r:   r   r   )r¥   r   r   rŒ  )r   r   r   r   )r¦  r   r   r   )$r)   r*   r+   r    r£   r    rÙ   rÝ   rá   rã   ró   rõ   rû   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r–   r‘   r’   r“   r•   r”   r—   rg  r˜   r™   rš   rÍ   rÎ   r=  r<  r-   r!   r   ra   ra   a   s  € € € € € ð=ð =ð =ð =ð =ð~
6ð 
6ð 
6ð 
6ð<ð <ð <ð <ðF#ð F#ð F#ð F#ð F#ðPð ð ð ðð ð ð ðð ð ð ðpð pð pð pð9ð 9ð 9ð 9ðFð Fð Fð Fð;Xð ;Xð ;Xð ;Xðz)ð )ð )ð )ðjð jð jð jð  Tð  Tð  Tð  TðDF(ð F(ð F(ð F(ð F(ðP=ð =ð =ð =ðJð Jð Jð JðX39ð 39ð 39ð 39ðj+ð +ð +ð +ðGð Gð Gð Gð{ð {ð {ð {ðpð pð pð pðrð rð rð rðvð vð vð vð
,ð 
,ð 
,ð 
,ð*:ð *:ð *:ð *:ð *:ðX"ð "ð "ð "ðMð Mð Mð Mðoð oð oð oð>ð >ð >ð >ð6Pð Pð Pð Pðð ð ð ð1ð 1ð 1ð 1ð 1ð 1r!   ra   )Ú
__future__r   Úcommonr   Ú	generatorr   rB   r   Úmesonlibr	   ÚtypingÚTÚpathlibr   Ú	functoolsr   r\  r   r�   ÚTYPE_CHECKINGÚenvironmentr   r   Ú
NamedTupler/   r4   rV   ra   r-   r!   r   ú<module>r¸     s»  ðð" #Ð "Ð "Ð "Ð "Ð "à "Ð "Ð "Ð "Ð "Ð "Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€à„?ð *Ø)Ð)Ð)Ð)Ð)Ð)ðDð Dð Dð Dð Dñ Dô Dð Dð ð ð ð ð �a”lñ ô ð ð!Cð !Cð !Cð !Cð !Cñ !Cô !Cð !CðF ð  ð  ð  ð  ˜;ñ  ô  ð  ðXð Xð Xð Xð Xñ Xô Xð Xð Xð Xr!   