§
    ¤æVc[L  ã                  óð   — 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m	Z	 dd	l
mZmZmZmZmZ dd
lmZmZmZ ddlmZmZmZmZ d dlZej        rddlmZ ddlmZmZ ddlmZ  G d„ de¦  «        Z dS )é    )Úannotationsé   )Úextract_required_kwargé   )Úmlog)Údependencies)Úbuild)ÚWrapMode)Ú	OptionKeyÚextract_as_listÚstringlistifyÚversion_compare_manyÚlistify)Ú
DependencyÚDependencyExceptionÚNotFoundDependency)ÚMesonInterpreterObjectÚ
FeatureNewÚInterpreterExceptionÚInvalidArgumentsN)ÚInterpreter)ÚTYPE_nkwargsÚ	TYPE_nvar)ÚSubprojectHolderc                  ó¸   ‡ — e Zd Z	 	 d5d6ˆ fd„Zd7d„Zd8d„Zd9d„Zd9d„Zd9d„Zd9d„Z	d:d„Z
d;d „Zd<d"„Zd=d%„Zd>d(„Zd?d)„Zd@d+„ZedAd/„¦   «         ZdBd1„ZdCdDd4„Zˆ xZS )EÚDependencyFallbacksHolderNÚinterpreterú'Interpreter'ÚnamesúT.List[str]Úallow_fallbackúT.Optional[bool]Údefault_optionsúT.Optional[T.List[str]]ÚreturnÚNonec                óT  •— t          ¦   «                              |j        ¬¦  «         || _        |j        | _        |j        | _        |j        | _        |j        | _        |j        j        | _        || _        d | _	        d | _
        d|pg i| _        g | _        d| _        d| _        |D ]d}|st          d¦  «        ‚d|v sd|v sd|v rt!          d¦  «        ‚|| j        v rt          d	|›d
�¦  «        ‚| j                             |¦  «         Œe| j        r| j        d         nd| _        d S )N)Ú
subprojectr#   Fz1dependency_fallbacks empty name '' is not allowedú<ú>ú=z„Characters <, > and = are forbidden in dependency names. To specifyversion
 requirements use the 'version' keyword argument instead.zdependency_fallbacks name z is duplicatedr   z(anonymous))ÚsuperÚ__init__r(   r   Úcoredatar	   ÚenvironmentÚwrap_resolverr!   Úsubproject_nameÚsubproject_varnameÚsubproject_kwargsr   ÚforcefallbackÚ
nofallbackr   r   ÚappendÚ_display_name)Úselfr   r   r!   r#   ÚnameÚ	__class__s         €úL/usr/lib/python3/dist-packages/mesonbuild/interpreter/dependencyfallbacks.pyr-   z"DependencyFallbacksHolder.__init__   sZ  ø€ å‰Œ×Ò KÔ$:ÐÑ;Ô;Ð;Ø&ˆÔØ%Ô0ˆŒØ#Ô,ˆŒØ Ô&ˆŒ
Ø&Ô2ˆÔØ(Ô4ÔBˆÔØ,ˆÔØ04ˆÔØ37ˆÔØ"3°_Ð5JÈÐ!KˆÔØ"$ˆŒ
Ø#(ˆÔØ %ˆŒØð 	$ð 	$ˆDØð bÝ*Ð+`ÑaÔaÐaØ�dˆ{ˆ{˜c T˜k˜k¨S°D¨[¨[Ý&ð (nñ oô oð oà�t”zÐ!Ð!Ý*Ð+^ÈÐ+^Ð+^Ð+^Ñ_Ô_Ð_ØŒJ×Ò˜dÑ#Ô#Ð#Ð#Ø.2¬jÐK˜TœZ¨œ]˜]¸mˆÔÐÐó    Úfbinfoú%T.Optional[T.Union[T.List[str], str]]c                ó~  — |€d S | j         �t          d¦  «        ‚t          |¦  «        }t          |¦  «        dk    r	d| _         d S t          |¦  «        dk    r&t	          j        dd| j        ¦  «         |d         d }}n(t          |¦  «        dk    r|\  }}nt          d¦  «        ‚|                      ||¦  «         d S )	Nz@"fallback" and "allow_fallback" arguments are mutually exclusiver   Fr   zFallback without variable namez0.53.0r   z)Fallback info must have one or two items.)	r!   r   r   Úlenr   Ú
single_user(   r   Ú_subproject_impl)r8   r=   Ú	subp_nameÚvarnames       r;   Úset_fallbackz&DependencyFallbacksHolder.set_fallback0   sÏ   € àˆ>ØˆFØÔÐ*Ý"Ð#eÑfÔfÐfÝ˜vÑ&Ô&ˆÝˆv‰;Œ;˜!ÒÐà"'ˆDÔØˆFÝˆv‰;Œ;˜!ÒÐÝÔ!Ð"BÀHÈdÌoÑ^Ô^Ð^Ø!'¨¤¨D�wˆIˆIÝ�‰[Œ[˜AÒÐØ!'ÑˆI�w�wå&Ð'RÑSÔSÐSØ×Ò˜i¨Ñ1Ô1Ð1Ð1Ð1r<   rC   ÚstrrD   c                ó4   — | j         �J ‚|| _         || _        d S ©N)r1   r2   )r8   rC   rD   s      r;   rB   z*DependencyFallbacksHolder._subproject_implD   s'   € ØÔ#Ð+Ð+Ð+Ø(ˆÔØ")ˆÔÐÐr<   Úkwargsr   Ú	func_argsr   Úfunc_kwargsúT.Optional[Dependency]c                óp   — |d         }|                       ||¦  «        }|r|                      |¦  «         |S ©Nr   )Ú_get_cached_depÚ_verify_fallback_consistency)r8   rI   rJ   rK   r9   Ú
cached_deps         r;   Ú_do_dependency_cachez.DependencyFallbacksHolder._do_dependency_cacheI   sB   € Ø˜Œ|ˆØ×)Ò)¨$°Ñ7Ô7ˆ
Øð 	:Ø×-Ò-¨jÑ9Ô9Ð9ØÐr<   c                óL  — |d         }|                       |¦  «         t          j        || j        |¦  «        }|                     ¦   «         rW| j                             |¦  «        }t          j        ||¦  «        }| j        j	        |          
                    ||¦  «         |S d S rN   )Ú_handle_featurenew_dependenciesr   Úfind_external_dependencyr/   Úfoundr   Úmachine_from_native_kwargÚget_dep_identifierr.   ÚdepsÚput)r8   rI   rJ   rK   r9   ÚdepÚfor_machineÚ
identifiers           r;   Ú_do_dependencyz(DependencyFallbacksHolder._do_dependencyP   sš   € ð
 ˜Œ|ˆØ×,Ò,¨TÑ2Ô2Ð2ÝÔ3°D¸$Ô:JÈFÑSÔSˆØ�9Š9‰;Œ;ð 	ØÔ*×DÒDÀVÑLÔLˆKÝ%Ô8¸¸vÑFÔFˆJØŒMÔ˜{Ô+×/Ò/°
¸CÑ@Ô@Ð@ØˆJØˆtr<   c                ó€   — |d         }| j         }|r,|                      |¦  «        r|                      |||¦  «        S d S rN   )r2   Ú_get_subprojectÚ_get_subproject_dep)r8   rI   rJ   rK   rC   rD   s         r;   Ú_do_existing_subprojectz1DependencyFallbacksHolder._do_existing_subproject_   sO   € Ø˜a”Lˆ	ØÔ)ˆØð 	H˜×-Ò-¨iÑ8Ô8ð 	HØ×+Ò+¨I°wÀÑGÔGÐGØˆtr<   c                ój  — | j         r.t          j        dt          j        | j        ¦  «        d¦  «         nb| j        r/t          j        dt          j        | j        ¦  «        d¦  «         d S t          j        dt          j        | j        ¦  «        ¦  «         |                     d¦  «        }t          |                     dg ¦  «        ¦  «        }|�Ut          d„ |D ¦   «         ¦  «        s<|rdnd}d	|› �}t          j        d
|› �¦  «         | 	                    |¦  «         ||d<   | j
        }| j        }	|                     dg ¦  «         d|v r3t          |d         t          ¦  «        rt          |d         ¦  «        |d<   | j                             |d|¦  «         |                      ||	|¦  «        S )Nz4Looking for a fallback subproject for the dependencyz0because:
Use of fallback dependencies is forced.z8Not looking for a fallback subproject for the dependencyz2because:
Use of fallback dependencies is disabled.Ústaticr#   c              3  ó   K  — | ]}d |v V — Œ	dS )Údefault_libraryN© ©Ú.0Úis     r;   ú	<genexpr>z;DependencyFallbacksHolder._do_subproject.<locals>.<genexpr>v   s(   è è € Ð)ZÐ)ZÀQÐ*;¸qÐ*@Ð)ZÐ)ZÐ)ZÐ)ZÐ)ZÐ)Zr<   Úsharedzdefault_library=z"Building fallback subproject with ÚversionÚmeson)r4   r   ÚlogÚboldr7   r5   Úgetr   Úanyr6   r1   r2   Ú
setdefaultÚ
isinstancerF   r   r   Údo_subprojectra   )
r8   rI   rJ   rK   rd   r#   rf   ÚoptrC   rD   s
             r;   Ú_do_subprojectz(DependencyFallbacksHolder._do_subprojectf   sÜ  € ØÔð 		4ÝŒHÐKÝ”Y˜tÔ1Ñ2Ô2Ð4gñiô ið ið iàŒ_ð 	4ÝŒHÐOÝ”Y˜tÔ1Ñ2Ô2Ð4iñkô kð kà�4åŒHÐKÝ”Y˜tÔ1Ñ2Ô2ñ4ô 4ð 4ð
 —’˜HÑ%Ô%ˆÝ'¨¯ªÐ8IÈ2Ñ(NÔ(NÑOÔOˆØÐ¥cÐ)ZÐ)ZÈ/Ð)ZÑ)ZÔ)ZÑ&ZÔ&ZÐØ*0Ð>˜h˜h°hˆOØ6 _Ð6Ð6ˆCÝŒHÐ?¸#Ð?Ð?Ñ@Ô@Ð@Ø×"Ò" 3Ñ'Ô'Ð'Ø-<ˆKÐ)Ñ*ð Ô(ˆ	ØÔ)ˆØ×Ò˜y¨"Ñ-Ô-Ð-Ø Ð&Ð&­:°fÐ=NÔ6OÕQTÑ+UÔ+UÐ&Ý-4°VÐ<MÔ5NÑ-OÔ-OˆKÐ)Ñ*ØÔ×&Ò& y°'¸;ÑGÔGÐGØ×'Ò'¨	°7¸FÑCÔCÐCr<   úT.Optional[SubprojectHolder]c                ót   — | j         j                             |¦  «        }|r|                     ¦   «         r|S d S rH   )r   Úsubprojectsrq   rV   )r8   rC   Úsubs      r;   r`   z)DependencyFallbacksHolder._get_subproject†   s<   € ØÔÔ*×.Ò.¨yÑ9Ô9ˆØð 	�3—9’9‘;”;ð 	ØˆJØˆtr<   c                ó  — |                       |¦  «        }|sit          j        dt          j        | j        ¦  «        dt          j        |¦  «        dt          j        d¦  «        t          j        d¦  «        ¦  «         d S d }| j        D ]}|                      ||¦  «        }|r nŒ|r|  	                    |¦  «         |S |s)| j        D ]!}| j
                             ||¦  «        }|r nŒ"|s�t          j        d|›d| j        ›d�¦  «         t          j        dt          j        | j        ¦  «        dt          j        |j        ¦  «        dt          j        d¦  «        ¦  «         |                      ¦   «         S |                      ||¦  «        p|                      ¦   «         }|                     ¦   «         s[t          j        dt          j        | j        ¦  «        dt          j        |j        ¦  «        dt          j        d¦  «        ¦  «         |S t#          |                     d	g ¦  «        ¦  «        }|                     ¦   «         }	|                      ||	¦  «        s²t          j        dt          j        | j        ¦  «        dt          j        |j        ¦  «        dt          j        d¦  «        d
t          j        |	¦  «        dt          j        d                     d„ |D ¦   «         ¦  «        ¦  «        ¦
  «
         |                      ¦   «         S t          j        dt          j        | j        ¦  «        dt          j        |j        ¦  «        dt          j        d¦  «        |	rt          j        |	¦  «        nd ¦  «         |S )Nr   zfrom subprojectúfound:ÚNOz (subproject failed to configure)zSubproject z did not override z* dependency and no variable name specifiedrm   rV   ú	but need:ú, c                ó   — g | ]}d |› d �‘Œ	S ©ú'rg   ©ri   Úes     r;   ú
<listcomp>zADependencyFallbacksHolder._get_subproject_dep.<locals>.<listcomp>Ã   s    € Ð)CÐ)CÐ)C°q¨(¨a¨(¨(¨(Ð)CÐ)CÐ)Cr<   ÚYES)r`   r   ro   rp   r7   ÚredÚbluer   rO   rP   r0   Úget_varnameÚwarningÚsubdirÚ_notfound_dependencyÚ_get_subproject_variablerV   r   rq   Úget_versionÚ_check_versionÚnormal_cyanÚjoinÚgreen)
r8   rC   rD   rI   r(   rQ   r9   Úvar_depÚwantedrV   s
             r;   ra   z-DependencyFallbacksHolder._get_subproject_depŒ   sƒ  € à×)Ò)¨)Ñ4Ô4ˆ
Øð 	ÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@ÐBSÝ”Y˜yÑ)Ô)¨8µT´X¸d±^´^Ý”YÐAÑBÔBñDô Dð Dð �4ð ˆ
Ø”Jð 	ð 	ˆDØ×-Ò-¨d°FÑ;Ô;ˆJØð Ø�ðð
 ð 	Ø×-Ò-¨jÑ9Ô9Ð9ØÐð ð 	ð œ
ð ð �ØÔ,×8Ò8¸ÀDÑIÔI�Øð Ø�Eðàð 	/ÝŒLð  G yð  Gð  GÀdÔFXð  Gð  Gð  Gñ  Hô  Hð  HÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@ÐBSÝ”Y˜zÔ0Ñ1Ô1°8½T¼XÀd¹^¼^ñMô Mð Mà×,Ò,Ñ.Ô.Ð.à×/Ò/°
¸GÑDÔDÐcÈ×HaÒHaÑHcÔHcˆØ�}Š}‰Œð 	ÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@ÐBSÝ”Y˜zÔ0Ñ1Ô1°8½T¼XÀd¹^¼^ñMô Mð MàˆNå˜vŸzšz¨)°RÑ8Ô8Ñ9Ô9ˆØ×#Ò#Ñ%Ô%ˆØ×"Ò" 6¨5Ñ1Ô1ð 	/ÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@ÐBSÝ”Y˜zÔ0Ñ1Ô1°8½T¼XÀd¹^¼^Ø�dÔ.¨uÑ5Ô5°{Ý”Y˜tŸyšyÐ)CÐ)C¸FÐ)CÑ)CÔ)CÑDÔDÑEÔEñGô Gð Gð ×,Ò,Ñ.Ô.Ð.åŒ��tœy¨Ô);Ñ<Ô<Ð>OÝ”˜:Ô,Ñ-Ô-¨x½¼ÀEÑ9JÔ9JØ,1Ð;•Ô! %Ñ(Ô(Ð(°tñ	=ô 	=ð 	=ð ˆr<   r9   c                ó˜  — | j                              |¦  «        }t          j        ||¦  «        }t	          |                     dg ¦  «        ¦  «        }| j        j        |                              |¦  «        }|rzt          j	        |j
        rdnd¦  «        g}|j        }|                     ¦   «         s@t          j        dt          j        | j        ¦  «        dt          j        d¦  «        g|¢R Ž  |S n:t          j	        d¦  «        g}| j        j        |                              |¦  «        }|�r|                     ¦   «         }	|                      ||	¦  «        s–|sd S t          j        dt          j        |¦  «        dt          j        d¦  «        dt          j        |	¦  «        dt          j        d	                     d
„ |D ¦   «         ¦  «        ¦  «        g|¢R Ž  |                      ¦   «         S |	rt          j        |	¦  «        g|¢}t          j        dt          j        | j        ¦  «        dt          j        d¦  «        g|¢R Ž  |S d S )Nrm   z(overridden)z(cached)r   r}   r~   rV   r   r€   c                ó   — g | ]}d |› d �‘Œ	S r‚   rg   r„   s     r;   r†   z=DependencyFallbacksHolder._get_cached_dep.<locals>.<listcomp>í   s    € Ð-LÐ-LÐ-L¸1¨h°!¨h¨h¨hÐ-LÐ-LÐ-Lr<   r‡   )r   rW   r   rX   r   rq   r	   Údependency_overridesr   r‰   Úexplicitr[   rV   ro   rp   r7   rˆ   r.   rY   r�   r�   r‘   r’   r�   r“   )
r8   r9   rI   r\   r]   Úwanted_versÚoverrideÚinforQ   Ú
found_verss
             r;   rO   z)DependencyFallbacksHolder._get_cached_depË   sY  € ð
 Ô&×@Ò@ÀÑHÔHˆÝ!Ô4°T¸6ÑBÔBˆ
Ý# F§J¢J¨y¸"Ñ$=Ô$=Ñ>Ô>ˆà”:Ô2°;Ô?×CÒCÀJÑOÔOˆØð 	IÝ”I°Ô0AÐQ˜n˜nÀzÑRÔRÐSˆDØ!œˆJð ×#Ò#Ñ%Ô%ð "Ý”˜¥t¤y°Ô1CÑ'DÔ'DØ!¥4¤8¨D¡>¤>ð:Ø48ð:ð :ð :ð :à!Ð!ð"õ
 ”I˜jÑ)Ô)Ð*ˆDØœÔ+¨KÔ8×<Ò<¸ZÑHÔHˆJàñ 	Ø#×/Ò/Ñ1Ô1ˆJØ×&Ò& {°JÑ?Ô?ð 
3Øð  ð  ˜4Ý”˜¥t¤y°¡¤Ø!¥4¤8¨D¡>¤>Ø ¥$Ô"2°:Ñ">Ô">ÀÝœ 4§9¢9Ð-LÐ-LÀÐ-LÑ-LÔ-LÑ#MÔ#MÑNÔNð ð ð	 ð  ð  ð  ð
 ×0Ò0Ñ2Ô2Ð2Øð =ÝÔ(¨Ñ4Ô4Ð<°tÐ<�ÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@Ø�tœz¨%Ñ0Ô0ð9Ø37ð9ð 9ð 9ð 9àÐØˆtr<   r(   r   c                óÔ   — 	 |                      |gi ¦  «        }n# t          $ r d }Y nw xY wt          |t          ¦  «        s't	          j        d|›d|j        ›d�|€dnd¦  «         d S |S )Nz	Variable z in the subproject z isz	not foundznot a dependency object)Úget_variable_methodr   rt   r   r   r‹   rŒ   )r8   r(   rD   r”   s       r;   rŽ   z2DependencyFallbacksHolder._get_subproject_variable÷   sœ   € ð	Ø ×4Ò4°g°YÀÑCÔCˆGˆGøÝð 	ð 	ð 	ØˆGˆGˆGð	øøøå˜'¥:Ñ.Ô.ð 	ÝŒLÐ[ WÐ[Ð[À:ÔCTÐ[Ð[Ð[Ø(/¨˜˜Ð=VñXô Xð Xà�4Øˆs   ‚ š)¨)rQ   r   c                óú   — | j         }| j        }|                      |¦  «        }|rM|rM|                      ||¦  «        }|r7|                     ¦   «         r%||k    r!t          j        d|›�¦  «         d S d S d S d S d S d S )NzSInconsistency: Subproject has overridden the dependency with another variable than )r1   r2   r`   rŽ   rV   r   r‹   )r8   rQ   rC   rD   r(   r”   s         r;   rP   z6DependencyFallbacksHolder._verify_fallback_consistency  sÈ   € ØÔ(ˆ	ØÔ)ˆØ×)Ò)¨)Ñ4Ô4ˆ
Øð 	@˜'ð 	@Ø×3Ò3°JÀÑHÔHˆGØð @˜:×+Ò+Ñ-Ô-ð @°'¸ZÒ2GÐ2GÝ”Ð~ÐszÐ~Ð~ÑÔÐÐÐð	@ð 	@ð 	@ð 	@ð@ð @ð @ð @Ð2GÐ2Gr<   c                ód  — |dk    rt          j        dd| j        ¦  «         dS |dk    rt          j        dd| j        ¦  «         dS |dk    rt          j        dd| j        ¦  «         dS |dk    rt          j        d	d
| j        ¦  «         dS |dk    rt          j        dd| j        ¦  «         dS dS )z:Do a feature check on dependencies used by this subprojectÚmpizMPI Dependencyz0.42.0ÚpcapzPcap DependencyÚvulkanzVulkan DependencyÚlibwmfzLibWMF Dependencyz0.44.0ÚopenmpzOpenMP Dependencyz0.46.0N)r   rA   r(   )r8   r9   s     r;   rT   z9DependencyFallbacksHolder._handle_featurenew_dependencies  sÓ   € à�5Š=ˆ=ÝÔ!Ð"2°H¸d¼oÑNÔNÐNÐNÐNØ�VŠ^ˆ^ÝÔ!Ð"3°X¸t¼ÑOÔOÐOÐOÐOØ�XÒÐÝÔ!Ð"5°xÀÄÑQÔQÐQÐQÐQØ�XÒÐÝÔ!Ð"5°xÀÄÑQÔQÐQÐQÐQØ�XÒÐÝÔ!Ð"5°xÀÄÑQÔQÐQÐQÐQð Ðr<   r   c                óT   — t          | j        r| j        d         nd| j        ¦  «        S )Nr   Ú )r   r   r/   )r8   s    r;   r�   z.DependencyFallbacksHolder._notfound_dependency  s&   € Ý!°4´:Ð"E $¤*¨Q¤- -À2ÀtÔGWÑXÔXÐXr<   r•   rV   Úboolc                óF   — | sdS |dk    pt          || ¦  «        d           S )NTÚ	undefinedr   )r   )r•   rV   s     r;   r�   z(DependencyFallbacksHolder._check_version  s6   € àð 	Ø�4Ø˜[Ò(ÐVÕ0DÀUÈFÑ0SÔ0SÐTUÔ0VÐ,VÐWÐWr<   úuT.List[T.Tuple[T.Callable[[TYPE_nkwargs, TYPE_nvar, TYPE_nkwargs], T.Optional[Dependency]], TYPE_nvar, TYPE_nkwargs]]c                ó‚  — g }| j         D ] }|                     | j        |gi f¦  «         Œ!| j        r(|                     | j        | j        g| j        f¦  «         | j        r| j        s(| j         D ] }|                     | j        |gi f¦  «         Œ!| j        r(|                     | j        | j        g| j        f¦  «         |S rH   )	r   r6   rR   r1   rb   r3   r4   r^   rw   )r8   Ú
candidatesr9   s      r;   Ú_get_candidatesz)DependencyFallbacksHolder._get_candidates!  s÷   € Øˆ
à”Jð 	Gð 	GˆDØ×Ò˜tÔ8¸4¸&À"ÐEÑFÔFÐFÐFàÔð 	nØ×Ò˜tÔ;¸dÔ>RÐ=SÐUYÔUkÐlÑmÔmÐmàÔ!ð 	E¨Ô)=ð 	EØœ
ð Eð E�Ø×!Ò! 4Ô#6¸¸ÀÐ"CÑDÔDÐDÐDàÔð 	eØ×Ò˜tÔ2°TÔ5IÐ4JÈDÔLbÐcÑdÔdÐdØÐr<   FÚforce_fallbackc                óú  ‡— t          |d¦  «        }|r@| xj        d                     d                     d„ |D ¦   «         ¦  «        ¦  «        z  c_        t	          || j        ¦  «        \  }}}|rUt          j        dt          j        | j        ¦  «        dt          j        |¦  «        d¦  «         |  	                    ¦   «         S | j
                             t          d¦  «        ¦  «        }t          |t          ¦  «        s
J d	¦   «         ‚| j
                             t          d
¦  «        ¦  «        Št          ‰t          ¦  «        s
J d	¦   «         ‚|t          j        k    | _        |p8|t          j        k    p(t%          ˆfd„| j        D ¦   «         ¦  «        p| j        ‰v | _        | j        sƒ| j        durz| j        D ]r}| j                             |¦  «        \  }	}
|	rQ| xj        |	‰v z  c_        | j        s | j        du s|s|                      |	¦  «        r|                      |	|
¦  «          nŒs|                      ¦   «         }|s|rt7          d¦  «        ‚t9          |¦  «        dz
  }t;          |¦  «        D ]ñ\  }}|\  }}}|o||k    |d<   |o||k    |d<    ||||¦  «        }|r™|                     ¦   «         r…| j        D ]y}| j                              |¦  «        }tC          j"        ||¦  «        }|| j#        j$        |         vr4tG          j%        || j        j&        d¬¦  «        | j#        j$        |         |<   Œz|c S |r |s||k    rtO          d| j        ›d�¦  «        ‚|r|c S Œò|  	                    ¦   «         S )NÚmodulesz (modules: {})r€   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rH   )rF   rh   s     r;   rk   z3DependencyFallbacksHolder.lookup.<locals>.<genexpr>5  s(   è è € ÐCYÐCYÈqÅCÈÁFÄFÐCYÐCYÐCYÐCYÐCYÐCYr<   r   zskipped: featureÚdisabledÚ	wrap_modezfor mypyÚforce_fallback_forc              3  ó    •K  — | ]}|‰v V — Œ	d S rH   rg   )ri   r9   r¶   s     €r;   rk   z3DependencyFallbacksHolder.lookup.<locals>.<genexpr>D  s)   øè è € Ð!TÐ!TÀ $Ð*<Ð"<Ð!TÐ!TÐ!TÐ!TÐ!TÐ!Tr<   FTz-Dependency is required but has no candidates.r   Úrequired)r™   zDependency z is required but not found.)(r   r7   Úformatr’   r   r(   r   ro   rp   r�   r.   Ú
get_optionr   rt   r
   Úlistr5   r4   rr   r   r1   r!   r0   Úfind_dep_providerr`   rB   r¯   r   r@   Ú	enumeraterV   r   rW   r   rX   r	   r˜   ÚDependencyOverrideÚcurrent_noder   )r8   rI   r°   Úmodsr´   r¸   Úfeaturerµ   r9   rC   rD   r®   Úlastrj   ÚitemÚfuncrJ   rK   r[   r\   r]   r¶   s                        @r;   Úlookupz DependencyFallbacksHolder.lookup2  s  ø€ Ý˜v yÑ1Ô1ˆØð 	[ØÐÔÐ"2×"9Ò"9¸$¿)º)ÐCYÐCYÐTXÐCYÑCYÔCYÑ:YÔ:YÑ"ZÔ"ZÑZÐÔå&<¸VÀTÄ_Ñ&UÔ&UÑ#ˆ�(˜GØð 	/ÝŒH�\¥4¤9¨TÔ-?Ñ#@Ô#@ÐBTÕVZÔV_Ð`gÑVhÔVhÐjtÑuÔuÐuØ×,Ò,Ñ.Ô.Ð.ð ”M×,Ò,­Y°{Ñ-CÔ-CÑDÔDˆ	Ý˜)¥XÑ.Ô.Ð:Ð:°
Ñ:Ô:Ð:Ø!œ]×5Ò5µiÐ@TÑ6UÔ6UÑVÔVÐÝÐ,­dÑ3Ô3Ð?Ð?°ZÑ?Ô?Ð?Ø#¥xÔ':Ò:ˆŒØ,ð IØ'­8Ô+AÒAðIå!Ð!TÐ!TÐ!TÐ!TÈÌÐ!TÑ!TÔ!TÑTÔTðIð #Ô2Ð6HÐHð 	Ôð Ô#ð 	¨Ô(;À5Ð(HÐ(HØœ
ð ð �Ø%)Ô%7×%IÒ%IÈ$Ñ%OÔ%OÑ"�	˜7Øð ØÐ&Ô&¨)Ð7IÐ*IÑIÐ&Ô&ØÔ)ð B¨TÔ-@ÀDÐ-HÐ-HÈHÐ-HÐX\×XlÒXlÐmvÑXwÔXwÐ-HØ×-Ò-¨i¸ÑAÔAÐAØ�Eð	ð ×)Ò)Ñ+Ô+ˆ
ð ð 	T˜hð 	TÝ"Ð#RÑSÔSÐSõ �:‰Œ Ñ"ˆÝ  Ñ,Ô,ð 	ð 	‰GˆAˆtØ+/Ñ(ˆD�)˜[Ø&.Ð&>°A¸²IˆK˜
Ñ#Ø!)Ð!9¨q°DªyˆF�:ÑØ�$�v˜y¨+Ñ6Ô6ˆCØð �s—y’y‘{”{ð ð !œJð ið i�DØ"&Ô"2×"LÒ"LÈVÑ"TÔ"T�KÝ!-Ô!@ÀÀvÑ!NÔ!N�JØ!¨¬Ô)HÈÔ)UÐUÐUå!Ô4°S¸$Ô:JÔ:WÐbgÐhÑhÔhð œ
Ô7¸ÔDÀZÑPøà�
�
�
Øð ˜sð  a¨4¢i iõ *Ð*i¸Ô8JÐ*iÐ*iÐ*iÑjÔjÐjØð à�
�
�
ðð ×(Ò(Ñ*Ô*Ð*r<   )NN)
r   r   r   r    r!   r"   r#   r$   r%   r&   )r=   r>   r%   r&   )rC   rF   rD   rF   r%   r&   )rI   r   rJ   r   rK   r   r%   rL   )rC   rF   r%   rx   )rC   rF   rD   rF   rI   r   r%   rL   )r9   rF   rI   r   r%   rL   )r(   r   rD   rF   r%   rL   )rQ   r   r%   r&   )r9   rF   r%   r&   )r%   r   )r•   r    rV   rF   r%   r©   )r%   r¬   )F)rI   r   r°   r©   r%   r   )Ú__name__Ú
__module__Ú__qualname__r-   rE   rB   rR   r^   rb   rw   r`   ra   rO   rŽ   rP   rT   r�   Ústaticmethodr�   r¯   rÅ   Ú__classcell__)r:   s   @r;   r   r      sÀ  ø€ € € € € ØjnØ<@ðLð Lð Lð Lð Lð Lð Lð62ð 2ð 2ð 2ð(*ð *ð *ð *ð
ð ð ð ðð ð ð ðð ð ð ðDð Dð Dð Dð@ð ð ð ð=ð =ð =ð =ð~*ð *ð *ð *ðX	ð 	ð 	ð 	ð@ð @ð @ð @ðRð Rð Rð RðYð Yð Yð Yð ðXð Xð Xñ „\ðXð
ð ð ð ð"C+ð C+ð C+ð C+ð C+ð C+ð C+ð C+ð C+r<   r   )!Ú
__future__r   Úinterpreterobjectsr   r¨   r   r   r	   Úwrapr
   Úmesonlibr   r   r   r   r   r   r   r   Úinterpreterbaser   r   r   r   ÚtypingÚTÚTYPE_CHECKINGr   r   r   r   r   r   rg   r<   r;   ú<module>rÓ      s”  ðØ "Ð "Ð "Ð "Ð "Ð "à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Ð Ð Ð Ø„?ð 5Ø(Ð(Ð(Ð(Ð(Ð(Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø4Ð4Ð4Ð4Ð4Ð4ða+ð a+ð a+ð a+ð a+Ð 6ñ a+ô a+ð a+ð a+ð a+r<   