§
    ƒnócG(  ã                  óà  — d dl mZ d dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ dd	lmZmZmZmZ dd
lmZ ddlmZ ej        rddlmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z edej        ej        ge¬¦  «        Z  edej        ej!        ej"        ge¬¦  «        Z# edej        ej        ge¬¦  «        Z$dS )é    )ÚannotationsNé   )Úmlog)Úmesonlib)Ú
Popen_safeÚextract_as_listÚversion_compare_many)Údetect_cpu_familyé   )ÚDependencyExceptionÚDependencyMethodsÚDependencyTypeNameÚSystemDependency)ÚConfigToolDependency)ÚDependencyFactory)ÚEnvironmentc                  ó    ‡ — e Zd Zd
ˆ fd	„Zˆ xZS )ÚGLDependencySystemÚnameÚstrÚenvironmentú'Environment'ÚkwargsúT.Dict[str, T.Any]ÚreturnÚNonec                ó8  •— t          ¦   «                              |||¦  «         | j        j        | j                                      ¦   «         rd| _        ddg| _        d S | j        j        | j                                      ¦   «         rd| _        dg| _        d S d S )NTz
-frameworkÚOpenGLz
-lopengl32)	ÚsuperÚ__init__ÚenvÚmachinesÚfor_machineÚ	is_darwinÚis_foundÚ	link_argsÚ
is_windows©Úselfr   r   r   Ú	__class__s       €ú</usr/lib/python3/dist-packages/mesonbuild/dependencies/ui.pyr    zGLDependencySystem.__init__'   s˜   ø€ Ý‰Œ×Ò˜˜{¨FÑ3Ô3Ð3àŒ8Ô˜TÔ-Ô.×8Ò8Ñ:Ô:ð 	Ø ˆDŒMà*¨HÐ5ˆDŒNàˆFØŒ8Ô˜TÔ-Ô.×9Ò9Ñ;Ô;ð 	Ø ˆDŒMà*˜^ˆDŒNàˆFð	ð 	ó    )r   r   r   r   r   r   r   r   ©Ú__name__Ú
__module__Ú__qualname__r    Ú__classcell__©r*   s   @r+   r   r   &   s=   ø€ € € € € ðð ð ð ð ð ð ð ð ð r,   r   c                  ól   ‡ — e Zd ZdgZdZdˆ fd„Zddd„Zedd„¦   «         Zedd„¦   «         Z	dd„Z
ˆ xZS )ÚGnuStepDependencyzgnustep-configr   r   r   r   r   r   c                ól  •— t          ¦   «                              d||d¬¦  «         | j        sd S |                     dg ¦  «        | _        |                      |                      dgd¦  «        ¦  «        | _        |                      |                      d| j        v rdnd	gd
¦  «        ¦  «        | _	        d S )NÚgnustepÚobjc©ÚlanguageÚmodulesz--objc-flagsÚcompile_argsÚguiz
--gui-libsz--base-libsr&   )
r   r    r%   Úgetr:   Úfilter_argsÚget_config_valuer;   Úweird_filterr&   )r)   r   r   r*   s      €r+   r    zGnuStepDependency.__init__<   s¾   ø€ Ý‰Œ×Ò˜ K°À&ÐÑIÔIÐIØŒ}ð 	ØˆFØ—z’z )¨RÑ0Ô0ˆŒØ ×,Ò,Ø×!Ò! >Ð"2°NÑCÔCñEô EˆÔà×*Ò*¨4×+@Ò+@Ø" d¤lÐ2Ð2ˆ\ˆ\¸ÐFØñ,ô ,ñ ô ˆŒˆˆr,   Nr   ÚversionsúT.Optional[T.List[str]]Ú
returncodeÚintú1T.Tuple[T.Optional[T.List[str]], T.Optional[str]]c                ó  — | j         d         g}	 t          |dgz   ¦  «        d d…         \  }}n# t          t          f$ r Y dS w xY w|j        |k    rdS || _        |                      ¦   «         }|rt          ||¦  «        d         sd |fS ||fS )Nr   z--helpr   )NN)Útoolsr   ÚFileNotFoundErrorÚPermissionErrorrC   ÚconfigÚdetect_versionr	   )r)   rA   rC   ÚtoolÚpÚoutÚfound_versions          r+   Úfind_configzGnuStepDependency.find_configG   s½   € Ø”
˜1”ˆˆð	 Ý ¨ zÑ 1Ñ2Ô2°2°A°2Ô6‰FˆAˆsˆsøÝ!¥?Ð3ð 	 ð 	 ð 	 Ø�<�<ð	 øøøàŒ<˜:Ò%Ð%Ø�<ØˆŒØ×+Ò+Ñ-Ô-ˆØð 	)Õ0°ÀÑIÔIÈ!ÔLð 	)Ø˜-Ð(Ð(à�mÐ$Ð$s   �/ ¯AÁAÚelemsúT.List[str]c                ó   — d„ | D ¦   «         S )zÉWhen building packages, the output of the enclosing Make is
        sometimes mixed among the subprocess output. I have no idea why. As a
        hack filter out everything that is not a flag.
        c                ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )ú-)Ú
startswith)Ú.0Úes     r+   ú
<listcomp>z2GnuStepDependency.weird_filter.<locals>.<listcomp>\   s)   € Ð6Ð6Ð6�a A§L¢L°Ñ$5Ô$5Ð6�Ð6Ð6Ð6r,   © )rQ   s    r+   r@   zGnuStepDependency.weird_filterV   s   € ð 7Ð6˜5Ð6Ñ6Ô6Ð6r,   Úargsc                óþ   — g }| D ]w}|                      d¦  «        sK|                      d¦  «        s6|                      d¦  «        s!|dk    s|                      d¦  «        r|dk    s|                     |¦  «         Œx|S )zzgnustep-config returns a bunch of garbage args such as -O2 and so
        on. Drop everything that is not needed.
        z-Dú-fú-Iz-pthreadz-Wz-Wall)rV   Úappend)r[   ÚresultÚfs      r+   r>   zGnuStepDependency.filter_args^   s”   € ð
 ˆØð 	!ð 	!ˆAØ�|Š|˜DÑ!Ô!ð !Ø—|’| DÑ)Ô)ð!à—|’| DÑ)Ô)ð!ð ˜J’�ØŸš TÑ*Ô*ð 'Ø34¸²<°<Ø—’˜aÑ Ô Ð øØˆr,   r   c                ó¬  — |                       dgd¦  «        d         }|                       dgd¦  «        d         }t          j                             |dd¦  «        }d}t          j                             ¦   «         }d|d	<   t          |d
dd
|dg||t          j        ¬¦  «        \  }}}| 	                    ¦   «         }	|	st          j        d¦  «         d}	|	S )Nz--variable=GNUMAKEÚvariabler   z--variable=GNUSTEP_MAKEFILESÚ
Additionalz	base.makezprint-%:
	@echo '$($*)'ÚgnuÚFOUNDATION_LIBr]   rU   zprint-GNUSTEP_BASE_VERSION)r!   ÚwriteÚstdinz4Couldn't detect GNUStep version, falling back to '1'Ú1)r?   ÚosÚpathÚjoinÚenvironÚcopyr   Ú
subprocessÚPIPEÚstripr   Údebug)
r)   ÚgmakeÚmakefile_dirÚ	base_makeÚprintverr!   rM   ÚorX   Úversions
             r+   rK   z GnuStepDependency.detect_versionm   sã   € Ø×%Ò%Ð';Ð&<¸jÑIÔIÈ!ÔLˆØ×,Ò,Ð.LÐ-MÈzÑZÔZÐ[\Ô]ˆå”G—L’L ¨|¸[ÑIÔIˆ	ð /ˆÝŒj�oŠoÑÔˆà %ˆÐÑÝ˜e T¨3°°iØ:ð<à!$¨H½J¼OðMñ Mô M‰ˆˆ1ˆað —'’'‘)”)ˆØð 	ÝŒJÐMÑNÔNÐNàˆGØˆr,   )r   r   r   r   r   r   )Nr   )rA   rB   rC   rD   r   rE   )rQ   rR   r   rR   )r[   rR   r   rR   )r   r   )r.   r/   r0   rG   Ú	tool_namer    rP   Ústaticmethodr@   r>   rK   r1   r2   s   @r+   r4   r4   7   s·   ø€ € € € € àÐ€EØ €Ið	ð 	ð 	ð 	ð 	ð 	ð%ð %ð %ð %ð %ð ð7ð 7ð 7ñ „\ð7ð ðð ð ñ „\ððð ð ð ð ð ð ð r,   r4   c                  ó*   ‡ — e Zd ZdgZdZd	ˆ fd„Zˆ xZS )
ÚSDL2DependencyConfigToolzsdl2-configr   r   r   r   r   r   c                óÐ   •— t          ¦   «                              |||¦  «         | j        sd S |                      dgd¦  «        | _        |                      dgd¦  «        | _        d S )Nz--cflagsr;   ú--libsr&   )r   r    r%   r?   r;   r&   r(   s       €r+   r    z!SDL2DependencyConfigTool.__init__‰   se   ø€ Ý‰Œ×Ò˜˜{¨FÑ3Ô3Ð3ØŒ}ð 	ØˆFØ ×1Ò1°:°,ÀÑOÔOˆÔØ×.Ò.°¨z¸;ÑGÔGˆŒˆˆr,   )r   r   r   r   r   r   )r.   r/   r0   rG   ry   r    r1   r2   s   @r+   r|   r|   „   sS   ø€ € € € € àˆO€EØ€IðHð Hð Hð Hð Hð Hð Hð Hð Hð Hr,   r|   c                  óD   ‡ — e Zd Zg d¢ZdZdˆ fd„Zedd
„¦   «         Zˆ xZS )ÚWxDependency)zwx-config-3.0zwx-config-3.1ú	wx-configzwx-config-gtk3r�   r   r   r   r   c                óì  •— t          ¦   «                              d||d¬¦  «         | j        sd S |                      |¦  «        | _        g }| j        rS|                     d¦  «         t          | j        |z   ¦  «        d         }d|v rt          j
        d¦  «         d| _        d S |                      d	g|z   | j        z   d
¦  «        | _        |                      dg|z   | j        z   d¦  «        | _        d S )NÚ	WxWidgetsÚcppr8   z--static=yesr   zNo config found to matchz&WxWidgets is missing static libraries.Fz
--cxxflagsr;   r~   r&   )r   r    r%   Úget_requestedÚrequested_modulesÚstaticr_   r   rJ   r   rr   r?   r;   r&   )r)   r   r   Ú
extra_argsÚerrr*   s        €r+   r    zWxDependency.__init__–   s  ø€ Ý‰Œ×Ò˜ k°6ÀEÐÑJÔJÐJØŒ}ð 	ØˆFØ!%×!3Ò!3°FÑ!;Ô!;ˆÔàˆ
ØŒ;ð 	Ø×Ò˜nÑ-Ô-Ð-õ ˜Tœ[¨:Ñ5Ñ6Ô6°qÔ9ˆCØ)¨SÐ0Ð0Ý”
ÐCÑDÔDÐDØ %�”Ø�ð !×1Ò1°<°.À:Ñ2MÐPTÔPfÑ2fÐhvÑwÔwˆÔØ×.Ò.°¨z¸JÑ/FÈÔI_Ñ/_ÐalÑmÔmˆŒˆˆr,   r   rR   c                ó„   — d| vrg S t          | d¦  «        }|D ]&}t          |t          ¦  «        st          d¦  «        ‚Œ'|S )Nr:   z)wxwidgets module argument is not a string)r   Ú
isinstancer   r   )r   Ú
candidatesÚcs      r+   r…   zWxDependency.get_requested¬   s`   € à˜FÐ"Ð"ØˆIÝ$ V¨YÑ7Ô7ˆ
Øð 	Wð 	WˆAÝ˜a¥Ñ%Ô%ð WÝ)Ð*UÑVÔVÐVðWàÐr,   )r   r   r   r   )r   r   r   rR   )	r.   r/   r0   rG   ry   r    rz   r…   r1   r2   s   @r+   r€   r€   ‘   ss   ø€ € € € € àMÐMÐM€EØ€Iðnð nð nð nð nð nð, ðð ð ñ „\ðð ð ð ð r,   r€   c                  ó"   ‡ — e Zd Zddˆ fd„Zˆ xZS )ÚVulkanDependencySystemNr   r   r   r   r   r   r9   úT.Optional[str]r   r   c                ó  •— t          ¦   «                              ||||¬¦  «         	 t          j        d         | _        t          j                             | j        ¦  «        st          d¦  «        ‚n# t          $ r
 d | _        Y nw xY w| j        �rƒd}d}d}t          j
        ¦   «         r/d}d}d	}t          | j        j        j        j        ¦  «        d
k    rd}t          j                             | j        |¦  «        }t          j                             |dd¦  «        }	t          j                             | j        |¦  «        }
| j                             |||
g¦  «        }|st          d¦  «        ‚t          j                             |	¦  «        st          d¦  «        ‚t)          d¦  «        | _        d| _        | j                             d|z   ¦  «         | j                             d|
z   ¦  «         | j                             d|z   ¦  «         d S | j                             d|g ¦  «        }|�L| j                             dd|d¬¦  «        d         r*d| _        |D ]}| j                             |¦  «         Œd S d S d S )Nr8   Ú
VULKAN_SDKz$VULKAN_SDK must be an absolute path.ÚvulkanÚlibÚincludezvulkan-1ÚLib32ÚIncludeÚx86_64ÚLibzvulkan.hz.VULKAN_SDK point to invalid directory (no lib)z2VULKAN_SDK point to invalid directory (no include)Ú
vulkan_sdkTr^   z-Lz-lzvulkan/vulkan.hÚ )Údisable_cacher   )r   r    rj   rm   rš   rk   Úisabsr   ÚKeyErrorr   r'   r
   r!   ÚcoredataÚ	compilersÚhostrl   Úclib_compilerÚfind_libraryÚisfiler   Ú	type_namer%   r;   r_   r&   Ú
has_header)r)   r   r   r   r9   Úlib_nameÚlib_dirÚinc_dirÚinc_pathÚheaderÚlib_pathÚfind_libÚlibsr”   r*   s                 €r+   r    zVulkanDependencySystem.__init__¹   s‡  ø€ Ý‰Œ×Ò˜˜{¨F¸XÐÑFÔFÐFð	#Ý œj¨Ô6ˆDŒOÝ”7—=’= ¤Ñ1Ô1ð RÝ)Ð*PÑQÔQÐQðRøåð 	#ð 	#ð 	#Ø"ˆDŒOˆOˆOð	#øøøð Œ?ñ *	ð  ˆHØˆGØˆGÝÔ"Ñ$Ô$ð $Ø%�Ø!�Ø#�Ý$ T¤XÔ%6Ô%@Ô%EÑFÔFÈ(ÒRÐRØ#�Gõ ”w—|’| D¤O°WÑ=Ô=ˆHÝ”W—\’\ (¨H°jÑAÔAˆFÝ”w—|’| D¤O°WÑ=Ô=ˆHØÔ)×6Ò6°xÀÈxÈjÑYÔYˆHàð \Ý)Ð*ZÑ[Ô[Ð[å”7—>’> &Ñ)Ô)ð `Ý)Ð*^Ñ_Ô_Ð_õ 0°Ñ=Ô=ˆDŒNØ ˆDŒMØÔ×$Ò$ T¨H¡_Ñ5Ô5Ð5ØŒN×!Ò! $¨¡/Ñ2Ô2Ð2ØŒN×!Ò! $¨¡/Ñ2Ô2Ð2ð ˆFð Ô%×2Ò2°8¸[È"ÑMÔMˆDØÐ DÔ$6×$AÒ$AÐBSÐUWÐYdÐtxÐ$AÑ$yÔ$yÐz{Ô$|ÐØ $�”Øð /ð /�CØ”N×)Ò)¨#Ñ.Ô.Ð.Ð.Ø�ð	  ÐÐÐs   ¨A
A3 Á3BÂB)N)
r   r   r   r   r   r   r9   r�   r   r   r-   r2   s   @r+   r�   r�   ·   sB   ø€ € € € € ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4r,   r�   Úgl)Úsystem_classÚsdl2)Úconfigtool_classr“   )%Ú
__future__r   rj   ro   ÚtypingÚTr›   r   r   r   r   r	   r   r
   Úbaser   r   r   r   Ú
configtoolr   Úfactoryr   ÚTYPE_CHECKINGr   r   r4   r|   r€   r�   Ú	PKGCONFIGÚSYSTEMÚ
gl_factoryÚCONFIG_TOOLÚEXTRAFRAMEWORKÚsdl2_factoryÚvulkan_factoryrZ   r,   r+   ú<module>rÁ      s†  ðð" #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +à ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø &Ð &Ð &Ð &Ð &Ð &à„?ð *Ø)Ð)Ð)Ð)Ð)Ð)ðð ð ð ð Ð)ñ ô ð ð"Jð Jð Jð Jð JÐ,ñ Jô Jð JðZ
Hð 
Hð 
Hð 
Hð 
HÐ3ñ 
Hô 
Hð 
Hð#ð #ð #ð #ð #Ð'ñ #ô #ð #ðL6ð 6ð 6ð 6ð 6Ð-ñ 6ô 6ð 6ðp ÐØØÔ Ð"3Ô":Ð;Ø#ðñ ô €
ð !Ð Ø
ØÔ Ð"3Ô"?ÐARÔAaÐbØ-ðñ ô €ð #Ð"ØØÔ Ð"3Ô":Ð;Ø'ðñ ô €€€r,   