§
    öÜÚcµB  ã                  óF  — d dl mZ d dlZd dlZd dlZd dlZddlmZm	Z	m
Z
mZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ dd	l
mZmZ dd
lmZmZmZmZmZmZm Z  ddl!m"Z" ej#        rddlm$Z$ ddlm%Z% ddl&m'Z' g d¢Z( G d„ dej)        ¦  «        Z* G d„ de"¦  «        Z+dS )é    )ÚannotationsNé   )Ú	compilersÚenvironmentÚmesonlibÚoptinterpreter)Úcoredata)Ú
ExecutableÚJarÚSharedLibraryÚSharedModuleÚStaticLibrary)Údetect_compiler_for)ÚInvalidArguments)ÚMachineChoiceÚ	OptionKey)ÚBaseNodeÚArithmeticNodeÚ	ArrayNodeÚElementaryNodeÚIdNodeÚFunctionNodeÚ
StringNodeé   )ÚAstInterpreter)ÚBuildTarget)Ú	TYPE_nvar)Ú
AstVisitor)Ú
executableÚjarÚlibraryÚshared_libraryÚshared_moduleÚstatic_libraryÚboth_librariesc                  ó(   ‡ — e Zd Zd	ˆ fd„Zd
d„Zˆ xZS )ÚIntrospectionHelperÚ
cross_fileÚstrc                ór   •— t          ¦   «                              ¦   «          || _        d | _        i | _        d S ©N)ÚsuperÚ__init__r(   Únative_fileÚcmd_line_options)Úselfr(   Ú	__class__s     €ú>/usr/lib/python3/dist-packages/mesonbuild/ast/introspection.pyr-   zIntrospectionHelper.__init__/   s6   ø€ Ý‰Œ×ÒÑÔÐØ$ˆŒØˆÔØ "ˆÔÐÐó    ÚotherÚobjectÚreturnÚboolc                ó   — t           S r+   )ÚNotImplemented)r0   r4   s     r2   Ú__eq__zIntrospectionHelper.__eq__5   s   € ÝÐr3   )r(   r)   )r4   r5   r6   r7   )Ú__name__Ú
__module__Ú__qualname__r-   r:   Ú__classcell__©r1   s   @r2   r'   r'   -   sQ   ø€ € € € € ð#ð #ð #ð #ð #ð #ðð ð ð ð ð ð ð r3   r'   c                  ó´   ‡ — e Zd Z	 	 	 	 	 d4d5ˆ fd„Zd6d„Zd7d„Zd6d„Zd8d"„Zd6d#„Zd9d(„Z	d:d)„Z
d:d*„Zd:d+„Zd:d,„Zd:d-„Zd:d.„Zd:d/„Zd:d0„Zd:d1„Zd;d2„Zd<d3„Zˆ xZS )=ÚIntrospectionInterpreterNÚ ÚsubprojectsÚsource_rootr)   ÚsubdirÚbackendÚvisitorsúT.Optional[T.List[AstVisitor]]r(   úT.Optional[str]Ú
subprojectÚsubproject_dirÚenvú#T.Optional[environment.Environment]c	                ó¨  •— |�|ng }t          ¦   «                              ||||¬¦  «         t          |¦  «        }	|| _        |€t	          j        |d |	¦  «        | _        n|| _        || _        | j                             ¦   «         | _        t          j
                             | j        | j        d¦  «        | _        || _        t!          d¦  «        | j        i| _        i | _        g | _        g | _        d | _        | j                             | j        | j        | j        | j        | j        | j        | j        | j        | j         | j!        dœ
¦  «         d S )N)rG   zmeson_options.txtrF   )
Úadd_languagesÚ
dependencyr   r    r!   Úprojectr"   r#   r$   r%   )"r,   r-   r'   r(   r   ÚEnvironmentrK   Úget_coredatar	   ÚosÚpathÚjoinrD   rE   Úoption_filerF   r   Údefault_optionsÚproject_dataÚtargetsÚdependenciesÚproject_nodeÚfuncsÚupdateÚfunc_add_languagesÚfunc_dependencyÚfunc_executableÚfunc_jarÚfunc_libraryÚfunc_projectÚfunc_shared_libÚfunc_shared_moduleÚfunc_static_libÚfunc_both_lib)r0   rD   rE   rF   rG   r(   rJ   rK   rL   Úoptionsr1   s             €r2   r-   z!IntrospectionInterpreter.__init__;   sS  ø€ ð  (Ð3�8�8¸ˆÝ‰Œ×Ò˜ f¨jÀ8ÐÑLÔLÐLå% jÑ1Ô1ˆØ$ˆŒØˆ;Ý*Ô6°{ÀDÈ'ÑRÔRˆDÔÐà"ˆDÔØ,ˆÔØÔ(×5Ò5Ñ7Ô7ˆŒÝœ7Ÿ<š<¨Ô(8¸$¼+ÐGZÑ[Ô[ˆÔØˆŒÝ )¨)Ñ 4Ô 4°d´lÐCˆÔØˆÔØˆŒØˆÔØ ˆÔàŒ
×ÒØ!Ô4ØÔ.ØÔ.Ø”=ØÔ(ØÔ(Ø"Ô2Ø!Ô4Ø"Ô2Ø"Ô0ð
ð 
ñ 	ô 	ð 	ð 	ð 	r3   Únoder   ÚargsúT.List[TYPE_nvar]ÚkwargsúT.Dict[str, TYPE_nvar]r6   ÚNonec                óL  — | j         rt          d¦  «        ‚|| _         t          |¦  «        dk     rt          d¦  «        ‚|d         }|                     dd¦  «        }|                      |dd …         ¦  «        }t          |t          ¦  «        r|j        }t          |t          ¦  «        sd}||dœ| _	        t          j                             | j        ¦  «        rRt          j        | j        ¦  «        }|                     | j        ¦  «         | j                             |j        ¦  «         |                      |                     dg ¦  «        ¦  «        }t+          j        |¦  «        }	t/          j        |	| j        ¦  «        | _        | j                             | j        ¦  «         | j                             | j        | j        | j        ¦  «         |                      ¦   «         sId	|v rE|d	         }
t          |
t>          ¦  «        r(t          |
j        t          ¦  «        sJ ‚|
j        | _         |                      ¦   «         s¼g | j	        d
<   t          j         !                    | j"        | j         ¦  «        }t          j         #                    |¦  «        rit          j$        |¦  «        D ]T}t          j         #                    t          j         !                    ||¦  «        ¦  «        r|  %                    |¦  «         ŒU| j         &                    | j'        ¦  «         d„ | j        j         (                    ¦   «         D ¦   «         }| j         )                    |¦  «         |  *                    |dtV          j,        ¦  «         |  *                    |dtV          j-        ¦  «         d S )NzSecond call to project()r   zCNot enough arguments to project(). Needs at least the project name.r   ÚversionÚ	undefined)Údescriptive_namerq   rX   rK   rC   c                óB   — i | ]\  }}|                      ¦   «         ¯||“ŒS © )Ú
is_backend©Ú.0ÚkÚvs      r2   ú
<dictcomp>z9IntrospectionInterpreter.func_project.<locals>.<dictcomp>�   s+   € ÐWÐWÐW™D˜A˜qÈÏÊÉÌÐW�1�aÐWÐWÐWr3   T).r\   r   ÚlenÚgetÚflatten_argsÚ
isinstancer   Úvaluer)   rY   rT   rU   ÚexistsrW   r   ÚOptionInterpreterrJ   Úprocessr	   Úupdate_project_optionsri   r   ÚstringlistifyÚcdataÚcreate_options_dictÚproject_default_optionsrX   r^   Úset_default_optionsr   Úis_subprojectr   rK   rV   rD   ÚisdirÚlistdirÚdo_subprojectÚinit_backend_optionsrF   ÚitemsÚset_optionsÚ_add_languagesr   ÚHOSTÚBUILD)r0   rj   rk   rm   Ú	proj_nameÚ	proj_versÚ
proj_langsÚoiÚdef_optsÚ_project_default_optionsÚ	spdirnameÚsubprojects_dirÚiri   s                 r2   rd   z%IntrospectionInterpreter.func_projectd   s.  € ØÔð 	?Ý"Ð#=Ñ>Ô>Ð>Ø ˆÔÝˆt‰9Œ9�qŠ=ˆ=Ý"Ð#hÑiÔiÐià˜”Gˆ	Ø—J’J˜y¨+Ñ6Ô6ˆ	Ø×&Ò& t¨A¨B¨B¤xÑ0Ô0ˆ
Ý�i¥Ñ0Ô0ð 	(Ø!œˆIÝ˜)¥SÑ)Ô)ð 	$Ø#ˆIØ1:ÀyÐQÐQˆÔåŒ7�>Š>˜$Ô*Ñ+Ô+ð 	=ÝÔ1°$´/ÑBÔBˆBØ�JŠJ�tÔ'Ñ(Ô(Ð(ØŒM×0Ò0°´Ñ<Ô<Ð<à×$Ò$ V§Z¢ZÐ0AÀ2Ñ%FÔ%FÑGÔGˆÝ#+Ô#9¸(Ñ#CÔ#CÐ Ý',Ô'@ÐAYÐ[_Ô[jÑ'kÔ'kˆÔ$ØÔ×#Ò# DÔ$@ÑAÔAÐAØŒ×)Ò)¨$Ô*>ÀÄÐQUÔQaÑbÔbÐbà×!Ò!Ñ#Ô#ð 	6Ð(8¸FÐ(BÐ(BØÐ/Ô0ˆIÝ˜)¥ZÑ0Ô0ð 6Ý! )¤/µ3Ñ7Ô7Ð7Ð7Ð7Ø&/¤o�Ô#Ø×!Ò!Ñ#Ô#ð 	.Ø/1ˆDÔ˜mÑ,Ý œgŸlšl¨4Ô+;¸TÔ=PÑQÔQˆOÝŒw�}Š}˜_Ñ-Ô-ð .Ýœ OÑ4Ô4ð .ð .�AÝ”w—}’}¥R¤W§\¢\°/À1Ñ%EÔ%EÑFÔFð .Ø×*Ò*¨1Ñ-Ô-Ð-øàŒ×*Ò*¨4¬<Ñ8Ô8Ð8ØWÐW DÔ$4Ô$<×$BÒ$BÑ$DÔ$DÐWÑWÔWˆàŒ×!Ò! 'Ñ*Ô*Ð*Ø×Ò˜J¨­mÔ.@ÑAÔAÐAØ×Ò˜J¨­mÔ.AÑBÔBÐBÐBÐBr3   Údirnamec           
     óÌ  — t           j                             | j                             ¦   «         | j        ¦  «        }t           j                             ||¦  «        }	 t          |d| j        | j        || j        | j        | j	        ¬¦  «        }| 
                    ¦   «          ||j        d<   | j        dxx         |j        gz  cc<   d S # t          j        t          f$ r Y d S w xY w)NrB   )r(   rJ   rK   rL   rG   ÚnamerC   )rT   rU   rV   r   Úget_source_dirrK   rA   rF   r(   rG   ÚanalyzerY   r   ÚMesonExceptionÚRuntimeError)r0   r�   Úsubproject_dir_absÚsubprÚsubis        r2   r�   z&IntrospectionInterpreter.do_subproject“   s  € ÝœWŸ\š\¨$Ô*:×*IÒ*IÑ*KÔ*KÈTÔM`ÑaÔaÐÝ”—’Ð/°Ñ9Ô9ˆð	Ý+¨E°2°t´|ÐPTÔP_Ðlsð  EIô  EXð  ^bô  ^nð  y}ô  yFð  Gñ  Gô  GˆDØ�LŠL‰NŒNˆNØ(/ˆDÔ˜fÑ%ØÔ˜mÐ,Ð,Ô,°Ô1BÐ0CÑCÐ,Ð,Ñ,Ð,Ð,øÝÔ'­Ð6ð 	ð 	ð 	ØˆFˆFð	øøøs   ÁA)C	 Ã	C#Ã"C#c                ó²  — |                       |¦  «        }|                     dd¦  «        }t          |t          j        ¦  «        r|                     ¦   «         }d|v rG|                     dd¦  «        }|                      |||rt          j        nt          j	        ¦  «         d S t          j        t          j	        fD ]}|                      |||¦  «         Œd S )NÚrequiredTÚnativeF)
Úflatten_kwargsr}   r   r†   ÚUserFeatureOptionÚ
is_enabledr‘   r   r“   r’   )r0   rj   rk   rm   r¨   r©   Úfor_machines          r2   r_   z+IntrospectionInterpreter.func_add_languagesž   sÞ   € Ø×$Ò$ VÑ,Ô,ˆØ—:’:˜j¨$Ñ/Ô/ˆÝ�h¥Ô 7Ñ8Ô8ð 	-Ø×*Ò*Ñ,Ô,ˆHØ�vÐÐØ—Z’Z ¨%Ñ0Ô0ˆFØ×Ò  hÀvÐ0eµÔ0CÐ0CÕS`ÔSeÑfÔfÐfÐfÐfå -Ô 3µ]Ô5GÐHð Að A�Ø×#Ò# D¨(°KÑ@Ô@Ð@Ð@ðAð Ar3   Ú	raw_langsr¨   r7   r­   r   c                óæ  — g }|                       |¦  «        D ]\}t          |t          ¦  «        r|                     |¦  «         Œ-t          |t          ¦  «        r|                     |j        ¦  «         Œ]t          |t          j        ¬¦  «        D ]à}| 	                    ¦   «         }|| j
        j        |         vr¶	 t          | j        ||¦  «        }n# t          j        $ r |r‚ Y ŒVw xY w| j        ri }|                     ¦   «         D ]F}	t#          j        | j
        j        |	         ¦  «        }
|	                     | j        ¬¦  «        }	|
||	<   ŒG| j
                             |||| j        ¦  «         Œád S )N)Úkey©rJ   )r~   r   r)   Úappendr   r€   Úsortedr   Ú
sort_clinkÚlowerr	   r   r   r   r¢   rJ   Úget_optionsÚcopyri   ÚevolveÚadd_compiler_options)r0   r®   r¨   r­   ÚlangsÚlÚlangÚcompri   ry   rz   s              r2   r‘   z'IntrospectionInterpreter._add_languagesª   s�  € ØˆØ×"Ò" 9Ñ-Ô-ð 	&ð 	&ˆAÝ˜!�SÑ!Ô!ð &Ø—’˜Q‘”��Ý˜A�zÑ*Ô*ð &Ø—’˜QœWÑ%Ô%Ð%øå˜5¥iÔ&:Ð;Ñ;Ô;ð 	eð 	eˆDØ—:’:‘<”<ˆDØ˜4œ=Ô2°;Ô?Ð?Ð?ð!Ý.¨tÔ/?ÀÀ{ÑSÔS�D�DøÝÔ.ð !ð !ð !àð !Øà ˜ð!øøøð ”?ð eØ �GØ!×-Ò-Ñ/Ô/ð 'ð '˜Ý œI d¤mÔ&;¸AÔ&>Ñ?Ô?˜ØŸHšH°´˜HÑ@Ô@˜Ø%&˜ ™
˜
Ø”M×6Ò6°wÀÀkÐSWÔScÑdÔdÐdøð#	eð 	es   Â;CÃC'Ã&C'c           	     óª  — |                       |¦  «        }|                      |¦  «        }|sd S |d         }d|v }|                     dd¦  «        }|                     dg ¦  «        }t          |t          ¦  «        s|g}t          |t
          ¦  «        r|j        }t          |t          ¦  «        sd}| xj        |||||j	        dk    |dœgz  c_        d S )Nr   Úfallbackr¨   Trq   F)rŸ   r¨   rq   Úhas_fallbackÚconditionalrj   )
r~   rª   r}   r   Úlistr   r€   r7   r[   Úcondition_level)r0   rj   rk   rm   rŸ   rÀ   r¨   rq   s           r2   r`   z(IntrospectionInterpreter.func_dependencyÅ   sú   € Ø× Ò  Ñ&Ô&ˆØ×$Ò$ VÑ,Ô,ˆØð 	ØˆFØ�AŒwˆØ! VÐ+ˆØ—:’:˜j¨$Ñ/Ô/ˆØ—*’*˜Y¨Ñ+Ô+ˆÝ˜'¥4Ñ(Ô(ð 	 Ø�iˆGÝ�h¥Ñ/Ô/ð 	&Ø”~ˆHÝ˜(¥DÑ)Ô)ð 	ØˆHØÐÔØØ ØØ(ØÔ/°!Ò3Øð
ð 
ð ñ 	ÐÔÐÐr3   Ú
kwargs_rawÚtargetclassúT.Type[BuildTarget]úT.Optional[T.Dict[str, T.Any]]c                ó¬  ‡ ‡— ‰                       |¦  «        }|rt          |d         t          ¦  «        sd S |d         }|g}g }d|v r|t          j        |d         ¦  «        z  }d|v r|t          j        |d         ¦  «        z  }‰                      |d¦  «        }dˆ fd„}	 |	|¦  «        }
 |	|¦  «        }ˆfd	„|                     ¦   «         D ¦   «         }d
„ |                     ¦   «         D ¦   «         }d„ |                     ¦   «         D ¦   «         }t          j        }g }g } ‰|‰ j	        ‰ j
        ||g |‰ j        ‰ j        j        |         |¦
  «
        }|                     ¦   «          |                     g ¦  «         |                     ¦   «         |                     ¦   «         |                     ¦   «         t&          j                             t&          j                             ‰ j        ‰ j	        t          j        ¦  «        ¦  «        ‰ j	        |j        |                     ¦   «         |                     ¦   «         |
|||dœ}‰ xj        |gz  c_        |S )Nr   ÚsourcesÚextra_filesTÚinqueueúT.List[BaseNode]r6   c                ó  •— g }| �r€|                       d¦  «        }d }t          |t          ¦  «        sJ ‚t          |t          ¦  «        r|j        }nºt          |t
          ¦  «        r|j        }n�t          |t          ¦  «        rbt          |j        t          ¦  «        sJ ‚|j        }|‰j	        v r5‰j	        |         }t          |t
          t          t          f¦  «        r| |gz  } n&t          |t          ¦  «        r| |j        |j        gz  } |€�Œ|j                             ¦   «         }t          |t          ¦  «        r#|j        t           v r|                      d¦  «         d„ |D ¦   «         }| d„ |D ¦   «         z  } |r||gz  }| �°€|S )Nr   c                óJ   — g | ] }t          |t          t          f¦  «        ¯|‘Œ!S ru   )r   r)   r   ©rx   Úxs     r2   ú
<listcomp>zQIntrospectionInterpreter.build_target.<locals>.traverse_nodes.<locals>.<listcomp>  s,   € Ð"\Ð"\Ð"\¨½:ÀaÍ#ÍzÐIZÑ;[Ô;[Ð"\ 1Ð"\Ð"\Ð"\r3   c           	     ób   — g | ],}t          |t          t          t          t          f¦  «        ¯*|‘Œ-S ru   )r   r   r   r   r   rÏ   s     r2   rÑ   zQIntrospectionInterpreter.build_target.<locals>.traverse_nodes.<locals>.<listcomp>	  s3   € ÐuÐuÐu !µJ¸qÅ<ÕQZÕ\bÕdrÐBsÑ4tÔ4tÐu˜AÐuÐuÐur3   )Úpopr   r   r   rk   r   r   r€   r)   Úassignmentsr   ÚleftÚrightÚ	argumentsr·   Ú	func_nameÚBUILD_TARGET_FUNCTIONS)	rË   ÚresÚcurrÚarg_nodeÚvar_nameÚtmp_nodeÚ	arg_nodesÚelemetary_nodesr0   s	           €r2   Útraverse_nodesz=IntrospectionInterpreter.build_target.<locals>.traverse_nodesî   s¥  ø€ ØˆCØñ "Ø—{’{ 1‘~”~�Ø�Ý! $­Ñ1Ô1Ð1Ð1Ð1Ý˜d¥LÑ1Ô1ð 7Ø#œy�H�HÝ ¥iÑ0Ô0ð 7Ø#œy�H�HÝ ¥fÑ-Ô-ð 	7å% d¤jµ#Ñ6Ô6Ð6Ð6Ð6Ø#œz�HØ 4Ô#3Ð3Ð3Ø#'Ô#3°HÔ#=˜Ý% hµ½FÅLÐ0QÑRÔRð 2Ø#¨ zÑ1˜GøÝ ¥nÑ5Ô5ð 7Ø ¤	¨4¬:Ð6Ñ6�GØÐ#ÙØ$Ô.×3Ò3Ñ5Ô5�	å˜d¥LÑ1Ô1ð %°d´nÕH^Ð6^Ð6^Ø—M’M !Ñ$Ô$Ð$Ø"\Ð"\¨iÐ"\Ñ"\Ô"\�ØÐuÐu yÐuÑuÔuÑu�Ø"ð "Ø˜D˜6‘M�Cð7 ñ "ð8 ˆJr3   c                ó6   •— i | ]\  }}|‰j         v ¯|d v ¯||“ŒS )>   ÚinstallÚbuild_alwaysÚbuild_by_default)Úknown_kwargs)rx   ry   rz   rÅ   s      €r2   r{   z9IntrospectionInterpreter.build_target.<locals>.<dictcomp>  sY   ø€ ð  Uð  Uð  U¡4 1 a¸QÀ+ÔBZÐ=ZÐ=ZÐ_`ð  eTð  `Tð  `T˜!˜Qð  `Tð  `Tð  `Tr3   c                óR   — i | ]$\  }}|t          |t          ¦  «        r|j        n|“Œ%S ru   )r   r   r€   rw   s      r2   r{   z9IntrospectionInterpreter.build_target.<locals>.<dictcomp>  s6   € ÐpÐpÐpÑQUÐQRÐTU˜!­
°1µnÑ(EÔ(EÐL˜QœW˜WÈ1ÐpÐpÐpr3   c                óD   — i | ]\  }}t          |t          ¦  «        °||“ŒS ru   )r   r   rw   s      r2   r{   z9IntrospectionInterpreter.build_target.<locals>.<dictcomp>  s/   € ÐaÐaÐa¡4 1 aÍÐTUÕW_ÑI`ÔI`Ða˜!˜QÐaÐaÐar3   )rŸ   ÚidÚtypeÚ
defined_inrE   rå   Ú	installedÚoutputsrÉ   rÊ   rm   rj   )rË   rÌ   r6   rÌ   )r~   r   r)   r   Úlistifyrª   r�   r   r’   rE   rJ   r   r	   r   Úprocess_compilersÚprocess_compilers_lateÚget_basenameÚget_idÚget_typenamerT   rU   ÚnormpathrV   rD   Úbuild_filenamerå   Úshould_installÚget_outputsrZ   )r0   rj   rk   rÄ   rÅ   rŸ   ÚsrcqueueÚextra_queuerm   rá   Úsource_nodesÚextraf_nodesÚkwargs_reducedr­   ÚobjectsÚempty_sourcesÚtargetÚ
new_targets   `   `             r2   Úbuild_targetz%IntrospectionInterpreter.build_targetÝ   s‹  øø€ Ø× Ò  Ñ&Ô&ˆØð 	�: d¨1¤g­sÑ3Ô3ð 	Ø�4Ø�AŒwˆØ�6ˆØˆð ˜
Ð"Ð"Ø�Ô(¨°IÔ)>Ñ?Ô?Ñ?ˆHà˜JÐ&Ð&Ø�8Ô+¨J°}Ô,EÑFÔFÑFˆKà×$Ò$ Z°Ñ6Ô6ˆð	ð 	ð 	ð 	ð 	ð 	ð@ &�~ hÑ/Ô/ˆØ%�~ kÑ2Ô2ˆð Uð  Uð  Uð  U¨6¯<ª<©>¬>ð  Uñ  Uô  UˆØpÐpÐYg×YmÒYmÑYoÔYoÐpÑpÔpˆØaÐa¨>×+?Ò+?Ñ+AÔ+AÐaÑaÔaˆÝ#Ô(ˆØˆØˆà�˜T 4¤;°´ÀÈmÐ]_ÐahØ!Ô-¨t¬}Ô/FÀ{Ô/SÐUcñeô eˆà× Ò Ñ"Ô"Ð"Ø×%Ò% bÑ)Ô)Ð)ð ×'Ò'Ñ)Ô)Ø—-’-‘/”/Ø×'Ò'Ñ)Ô)Ýœ'×*Ò*­2¬7¯<ª<¸Ô8HÈ$Ì+ÕWbÔWqÑ+rÔ+rÑsÔsØ”kØ &Ô 7Ø×.Ò.Ñ0Ô0Ø×)Ò)Ñ+Ô+Ø#Ø'ØØð
ð 
ˆ
ð 	ˆŒ˜˜Ñ$ˆŒØÐr3   c                ó&  — | j                              t          d¦  «        ¦  «        }|dk    r|                      |||t          ¦  «        S |dk    r|                      |||t
          ¦  «        S |dk    r|                      |||t          ¦  «        S d S )NÚdefault_libraryÚsharedÚstaticÚboth)r	   Ú
get_optionr   r  r   r   )r0   rj   rk   rm   r  s        r2   Úbuild_libraryz&IntrospectionInterpreter.build_library0  s”   € Øœ-×2Ò2µ9Ð=NÑ3OÔ3OÑPÔPˆØ˜hÒ&Ð&Ø×$Ò$ T¨4°½ÑGÔGÐGØ Ò(Ð(Ø×$Ò$ T¨4°½ÑGÔGÐGØ Ò&Ð&Ø×$Ò$ T¨4°½ÑGÔGÐGØˆtr3   c                ó<   — |                       |||t          ¦  «        S r+   )r  r
   ©r0   rj   rk   rm   s       r2   ra   z(IntrospectionInterpreter.func_executable:  s   € Ø× Ò   t¨VµZÑ@Ô@Ð@r3   c                ó<   — |                       |||t          ¦  «        S r+   )r  r   r
  s       r2   rg   z(IntrospectionInterpreter.func_static_lib=  ó   € Ø× Ò   t¨Vµ]ÑCÔCÐCr3   c                ó<   — |                       |||t          ¦  «        S r+   ©r  r   r
  s       r2   re   z(IntrospectionInterpreter.func_shared_lib@  r  r3   c                ó<   — |                       |||t          ¦  «        S r+   r  r
  s       r2   rh   z&IntrospectionInterpreter.func_both_libC  r  r3   c                ó<   — |                       |||t          ¦  «        S r+   )r  r   r
  s       r2   rf   z+IntrospectionInterpreter.func_shared_moduleF  s   € Ø× Ò   t¨Vµ\ÑBÔBÐBr3   c                ó0   — |                       |||¦  «        S r+   )r  r
  s       r2   rc   z%IntrospectionInterpreter.func_libraryI  s   € Ø×!Ò! $¨¨fÑ5Ô5Ð5r3   c                ó<   — |                       |||t          ¦  «        S r+   )r  r   r
  s       r2   rb   z!IntrospectionInterpreter.func_jarL  s   € Ø× Ò   t¨VµSÑ9Ô9Ð9r3   c                ó  — d|vrd S |                      d¦  «        }t          |t          ¦  «        r|j        }|dk    r|                      |||t
          ¦  «        S |dk    r|                      |||t          ¦  «        S |dk    r|                      |||t          ¦  «        S |dk    r|                      |||t          ¦  «        S |dk    r|                      |||¦  «        S |dk    r|                      |||t          ¦  «        S d S )NÚtarget_typer   r"   r$   r%   r!   r    )
rÓ   r   r   r€   r  r
   r   r   r  r   )r0   rj   rk   rm   r  s        r2   Úfunc_build_targetz*IntrospectionInterpreter.func_build_targetO  s!  € Ø Ð&Ð&Ø�4Ø—j’j Ñ/Ô/ˆÝ�k¥>Ñ2Ô2ð 	,Ø%Ô+ˆKØ˜,Ò&Ð&Ø×$Ò$ T¨4°½ÑDÔDÐDØÐ,Ò,Ð,Ø×$Ò$ T¨4°½ÑGÔGÐGØÐ,Ò,Ð,Ø×$Ò$ T¨4°½ÑGÔGÐGØÐ,Ò,Ð,Ø×$Ò$ T¨4°½ÑGÔGÐGØ˜IÒ%Ð%Ø×%Ò% d¨D°&Ñ9Ô9Ð9Ø˜EÒ!Ð!Ø×$Ò$ T¨4°½Ñ=Ô=Ð=Øˆtr3   c                ó   — | j         dk    S )NrB   r±   ©r0   s    r2   rŠ   z&IntrospectionInterpreter.is_subprojectc  s   € ØŒ "Ò$Ð$r3   c                ó¦   — |                       ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d S r+   )Úload_root_meson_fileÚsanity_check_astÚparse_projectÚrunr  s    r2   r¡   z IntrospectionInterpreter.analyzef  sI   € Ø×!Ò!Ñ#Ô#Ð#Ø×ÒÑÔÐØ×ÒÑÔÐØ�Š‰
Œ
ˆ
ˆ
ˆ
r3   )NNrB   rC   N)rD   r)   rE   r)   rF   r)   rG   rH   r(   rI   rJ   r)   rK   r)   rL   rM   )rj   r   rk   rl   rm   rn   r6   ro   )r�   r)   r6   ro   )r®   rl   r¨   r7   r­   r   r6   ro   )
rj   r   rk   rl   rÄ   rn   rÅ   rÆ   r6   rÇ   )rj   r   rk   rl   rm   rn   r6   rÇ   )r6   r7   )r6   ro   )r;   r<   r=   r-   rd   r�   r_   r‘   r`   r  r  ra   rg   re   rh   rf   rc   rb   r  rŠ   r¡   r>   r?   s   @r2   rA   rA   8   sÏ  ø€ € € € € ð =AØ/3Ø#%Ø'4Ø<@ð'ð 'ð 'ð 'ð 'ð 'ð 'ðR-Cð -Cð -Cð -Cð^	ð 	ð 	ð 	ð
Að 
Að 
Að 
Aðeð eð eð eð6ð ð ð ð0Qð Qð Qð Qðfð ð ð ðAð Að Að AðDð Dð Dð DðDð Dð Dð DðDð Dð Dð DðCð Cð Cð Cð6ð 6ð 6ð 6ð:ð :ð :ð :ðð ð ð ð(%ð %ð %ð %ðð ð ð ð ð ð ð r3   rA   ),Ú
__future__r   Úargparser·   rT   ÚtypingÚTrB   r   r   r   r   r	   r†   Úbuildr
   r   r   r   r   r   Úinterpreterbaser   r   r   Úmparserr   r   r   r   r   r   r   Úinterpreterr   ÚTYPE_CHECKINGr   r   Úvisitorr   rÙ   Ú	Namespacer'   rA   ru   r3   r2   ú<module>r(     sá  ðð$ #Ð "Ð "Ð "Ð "Ð "Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø  Ð  Ð  Ð  Ð  Ð  Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ +Ð +Ð +Ð +Ð +Ð +Ø .Ð .Ð .Ð .Ð .Ð .Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kØ 'Ð 'Ð 'Ð 'Ð 'Ð 'à„?ð $Ø#Ð#Ð#Ð#Ð#Ð#Ø+Ð+Ð+Ð+Ð+Ð+Ø#Ð#Ð#Ð#Ð#Ð#ðð ð Ð ð
	ð 	ð 	ð 	ð 	˜(Ô,ñ 	ô 	ð 	ðrð rð rð rð r˜~ñ rô rð rð rð rr3   