§
    ƒnóc¸  ã                  ó�   — d dl mZ ddlmZmZmZ ddlmZmZm	Z	 ddl
mZ d dlmZ d dlZej        rdd	lmZ  G d
„ de¦  «        ZdS )é    )Úannotationsé   )ÚDependencyTypeNameÚExternalDependencyÚDependencyExceptioné   )ÚMesonExceptionÚVersionÚstringlistify)Úmlog)ÚPathN)ÚEnvironmentc                  ór   ‡ — e Zd ZU dZded<   ddˆ fd„Zdd„Zdd„Zdd„Zdd„Z	d d„Z
ed d„¦   «         Zˆ xZS )!ÚExtraFrameworkDependencyNzT.Optional[T.List[str]]Úsystem_framework_pathsÚnameÚstrÚenvú'Environment'ÚkwargsúT.Dict[str, T.Any]ÚlanguageúT.Optional[str]ÚreturnÚNonec                óâ  •— t          |                     dg ¦  «        ¦  «        }t          ¦   «                              t	          d¦  «        |||¬¦  «         || _        d | _        | j        st          d¦  «        ‚| j	        €W	 | j         
                    | j        ¦  «        | _	        n1# t          $ r$}dt          |¦  «        v rd| _        Y d }~d S ‚ d }~ww xY w|                      ||¦  «         d S )NÚpathsÚextraframeworks)r   z!No C-like compilers are availablez	non-clangF)r   ÚgetÚsuperÚ__init__r   r   Úframework_pathÚclib_compilerr   r   Úfind_framework_pathsr   r	   r   Úis_foundÚdetect)Úselfr   r   r   r   r   ÚeÚ	__class__s          €úC/usr/lib/python3/dist-packages/mesonbuild/dependencies/framework.pyr!   z!ExtraFrameworkDependency.__init__   s  ø€ Ý˜fŸjšj¨°"Ñ5Ô5Ñ6Ô6ˆÝ‰Œ×ÒÕ+Ð,=Ñ>Ô>ÀÀVÐV^ÐÑ_Ô_Ð_ØˆŒ	à/3ˆÔØÔ!ð 	KÝ%Ð&IÑJÔJÐJØÔ&Ð.ðØ.2Ô.@×.UÒ.UÐVZÔV^Ñ._Ô._�Ô+Ð+øÝ!ð ð ð Ø¥# a¡&¤&Ð(Ð(ð %*�D”MØ�F�F�F�F�FØøøøøðøøøð 	�Š�D˜%Ñ Ô Ð Ð Ð s   Â$B( Â(
CÂ2CÃCÃCr   úT.List[str]c                ó®  — |s| j         }|D ]È}t          j        d|› d|› �¦  «         |                      ||¦  «        }|€Œ5|| j         v }| j                             || j        |g|¦  «        }|€Œd|| _        |                     ¦   «         | _	        d| j	        z   g| _
        |                      |¦  «        }|r| xj
        d|z   gz  c_
        d| _         d S d S )NzLooking for framework z in z-Fz-IT)r   r   ÚdebugÚ_get_framework_pathr#   Úfind_frameworkr   Ú	link_argsÚas_posixr"   Úcompile_argsÚ_get_framework_include_pathr%   )r'   r   r   Úpr"   Úallow_systemÚargsÚincdirs           r*   r&   zExtraFrameworkDependency.detect0   s  € Øð 	0ØÔ/ˆEØð 	ð 	ˆAÝŒJÐ=°Ð=Ð=¸!Ð=Ð=Ñ>Ô>Ð>ð
 "×5Ò5°a¸Ñ>Ô>ˆNØÐ%Øð  Ô ;Ð;ˆLØÔ%×4Ò4°T¸4¼8ÀaÀSÈ,ÑWÔWˆDØˆ|ØØ!ˆDŒNØ"0×"9Ò"9Ñ";Ô";ˆDÔØ!%¨Ô(;Ñ!;Ð <ˆDÔð
 ×5Ò5°nÑEÔEˆFØð 5ØÐ!Ô! d¨V¡m _Ñ4Ð!Ô!Ø ˆDŒMØˆFˆFð=	ð 	ó    ÚpathúT.Optional[Path]c                óò   — t          |¦  «        }|                     ¦   «         }|                     d¦  «        D ]=}||j                             dd¦  «        d                              ¦   «         k    r|c S Œ>d S )Nz*.framework/ú.r   r   )r   ÚlowerÚglobr   Úrsplit)r'   r9   r   r4   ÚlnameÚds         r*   r.   z,ExtraFrameworkDependency._get_framework_pathS   st   € Ý�‰JŒJˆØ—
’
‘”ˆØ—’˜Ñ'Ô'ð 	ð 	ˆAØ˜œŸš c¨1Ñ-Ô-¨aÔ0×6Ò6Ñ8Ô8Ò8Ð8Ø���ð 9àˆtr8   r   c                óD  — g }|                      d¦  «        D ]G}|j                             ¦   «         dk    rŒ |                     t	          |j        ¦  «        ¦  «         ŒHt          |¦  «        dk    rdS d                     t          |¦  «        d         j        ¦  «        S )Nz
Versions/*Úcurrentr   ÚHeaderszVersions/{}/Headerséÿÿÿÿ)	r>   r   r=   Úappendr
   ÚlenÚformatÚsortedÚ_s)r'   r9   ÚversionsÚeachs       r*   Ú_get_framework_latest_versionz6ExtraFrameworkDependency._get_framework_latest_version[   s•   € ØˆØ—I’I˜lÑ+Ô+ð 	0ð 	0ˆDàŒy�ŠÑ Ô  IÒ-Ð-ØØ�OŠO�G D¤IÑ.Ô.Ñ/Ô/Ð/Ð/Ýˆx‰=Œ=˜AÒÐà�9Ø$×+Ò+­F°8Ñ,<Ô,<¸RÔ,@Ô,CÑDÔDÐDr8   c                óž   — dd|                       |¦  «        f}|D ]1}||z  }|                     ¦   «         r|                     ¦   «         c S Œ2d S )NrD   zVersions/Current/Headers)rM   Úis_dirr1   )r'   r9   ÚtrialsrL   Útrials        r*   r3   z4ExtraFrameworkDependency._get_framework_include_pathg   sj   € ð
 Ð7Ø×4Ò4°TÑ:Ô:ð<ˆàð 	(ð 	(ˆDØ˜4‘KˆEØ�|Š|‰~Œ~ð (Ø—~’~Ñ'Ô'Ð'Ð'Ð'ð(àˆtr8   c                ó   — | j         pdS )NÚ )r"   )r'   s    r*   Úlog_infoz!ExtraFrameworkDependency.log_infot   s   € ØÔ"Ð( bÐ(r8   c                 ó   — dS )NÚ	framework© rW   r8   r*   Ú	log_triedz"ExtraFrameworkDependency.log_triedw   s   € àˆ{r8   )N)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r+   r   r   )r9   r   r   r   r   r:   )r9   r   r   r   )r9   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r!   r&   r.   rM   r3   rT   ÚstaticmethodrX   Ú__classcell__)r)   s   @r*   r   r      sß   ø€ € € € € € Ø6:ÐÐ:Ð:Ð:Ñ:ð!ð !ð !ð !ð !ð !ð !ð(!ð !ð !ð !ðFð ð ð ð
Eð 
Eð 
Eð 
Eðð ð ð ð)ð )ð )ð )ð ðð ð ñ „\ðð ð ð ð r8   r   )Ú
__future__r   Úbaser   r   r   Úmesonlibr	   r
   r   rS   r   Úpathlibr   ÚtypingÚTÚTYPE_CHECKINGÚenvironmentr   r   rW   r8   r*   ú<module>rg      sà   ðð #Ð "Ð "Ð "Ð "Ð "à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à„?ð *Ø)Ð)Ð)Ð)Ð)Ð)ð`ð `ð `ð `ð `Ð1ñ `ô `ð `ð `ð `r8   