§
    ‹ã÷c²]  ã                  óð   — d dl mZ d dlmZ ddlmZmZmZmZ ddl	m
Z
mZmZmZ ddlmZmZ ddlmZ d d	lmZ d d
lZd d
lZd d
lZd d
lZej        rddlmZ ddl	mZ ddlmZ ddlm Z   G d„ de¦  «        Z!d
S )é    )Úannotations)ÚPathé   )ÚExternalDependencyÚDependencyExceptionÚsort_libpathsÚDependencyTypeNameé   )Ú	OptionKeyÚ
OrderedSetÚ
PerMachineÚ
Popen_safe)Úfind_external_programÚExternalProgram)Úmlog)ÚPurePathN)ÚEnvironment)ÚMachineChoice)ÚImmutableListProtocol©ÚEnvironmentVariablesc                  óV  ‡ — e Zd ZU  edd¦  «        Zded<   i Zded<   dHdIˆ fd„ZdJd„Ze	dKd„¦   «         Z
dLd„Ze	 dMdNd"„¦   «         Ze	 dMdOd$„¦   «         ZdHdPd&„ZdQd'„ZdRd)„ZdSd*„ZdTd.„ZdSd/„ZdUd4„ZedVd7„¦   «         ZdWd:„ZdXd;„ZdXd<„ZdXd=„ZedJd>„¦   «         Zddddddd?œdYdG„Zˆ xZS )ZÚPkgConfigDependencyNz0PerMachine[T.Union[None, bool, ExternalProgram]]Úclass_pkgbinzkT.Dict[T.Tuple[ExternalProgram, T.Tuple[str, ...], T.FrozenSet[T.Tuple[str, str]]], T.Tuple[int, str, str]]Úpkgbin_cacheÚnameÚstrÚenvironmentú'Environment'ÚkwargsúT.Dict[str, T.Any]ÚlanguageúT.Optional[str]ÚreturnÚNonec                ó~  •— t          ¦   «                              t          d¦  «        |||¬¦  «         || _        d| _        |                      | j        | j        | j        ¦  «        | _	        | j	        du r>d | _	        d| j        › d�}| j
        rt          |¦  «        ‚t          j        |¦  «         d S t          | j	        t          ¦  «        sJ ‚t          j        d                     || j	                             ¦   «         ¦  «        ¦  «         |                      d|g¦  «        \  }| _        }|dk    rd S d	| _        	 |                      ¦   «          |                      ¦   «          d S # t          $ rI}t          j        d
|› d|› �¦  «         | j
        r‚ g | _        g | _        d| _        || _        Y d }~d S d }~ww xY w)NÚ	pkgconfig)r"   FzPkg-config binary for machine z not found. Giving up.z;Determining dependency {!r} with pkg-config executable {!r}z--modversionr   Tzpkg-config error with 'z': )ÚsuperÚ__init__r	   r   Ú
is_libtoolÚ_detect_pkgbinÚsilentÚenvÚfor_machineÚpkgbinÚrequiredr   r   ÚdebugÚ
isinstancer   ÚformatÚget_pathÚ_call_pkgbinÚversionÚis_foundÚ
_set_cargsÚ	_set_libsÚcompile_argsÚ	link_argsÚreason)
Úselfr   r   r    r"   ÚmsgÚretÚ_ÚeÚ	__class__s
            €úC/usr/lib/python3/dist-packages/mesonbuild/dependencies/pkgconfig.pyr)   zPkgConfigDependency.__init__,   s×  ø€ Ý‰Œ×ÒÕ+¨KÑ8Ô8¸+ÀvÐX`ÐÑaÔaÐaØˆŒ	ØˆŒð ×)Ò)¨$¬+°t´xÀÔAQÑRÔRˆŒØŒ;˜%ÐÐØˆDŒKØ[°4Ô3CÐ[Ð[Ð[ˆCØŒ}ð Ý)¨#Ñ.Ô.Ð.å”
˜3‘”�Ø�å˜$œ+¥Ñ7Ô7Ð7Ð7Ð7ÝŒ
ð ß š&  t¤{×';Ò';Ñ'=Ô'=Ñ>Ô>ñ	@ô 	@ð 	@à#×0Ò0°.À$Ð1GÑHÔHÑˆˆTŒ\˜1Ø�!Š8ˆ8ØˆFàˆŒð	 à�OŠOÑÔÐà�NŠNÑÔÐÐÐøÝ"ð 	 ð 	 ð 	 ÝŒJÐ=°Ð=Ð=¸!Ð=Ð=Ñ>Ô>Ð>ØŒ}ð  Øà$&�Ô!Ø!#�”Ø %�”Ø�”������øøøøð	 øøøs   Ä?(E) Å)
F<Å3>F7Æ7F<c                óh   — d}|                      | j        j        | j        | j        | j        ¦  «        S )Nz<{0} {1}: {2} {3}>)r3   rB   Ú__name__r   r7   Úversion_reqs)r=   Úss     rC   Ú__repr__zPkgConfigDependency.__repr__T   s2   € Ø ˆØ�xŠx˜œÔ/°´¸D¼MØÔ)ñ+ô +ð 	+ó    r,   Úboolr-   r   r.   r   ú$T.Union[None, bool, ExternalProgram]c                ó€  — | j         |         du rt          j        d|› d�¦  «         �n	| j         |         �t          j        d|› d�¦  «         nã| j         |         �
J d¦   «         ‚t          j        d|› d�¦  «         t          ||dd|j        d¬	¦  «        D ]f}|                      ||¦  «        }|sŒ|s>t          j        d
t          j        |                     ¦   «         ¦  «        d|› d�¦  «         || j         |<    n3|s't          j        dt          j	        d¦  «        ¦  «         d| j         |<   | j         |         S )NFzPkg-config binary for z is cached as not found.z is cached.zfor mypyz is not cached.r'   z
Pkg-config)Úallow_default_for_crosszFound pkg-config:ú(ú)zFound Pkg-config:ÚNO)
r   r   r1   r   Údefault_pkgconfigÚcheck_pkgconfigÚlogÚboldr4   Úred)Úclsr,   r-   r.   Úpotential_pkgbinÚversion_if_oks         rC   r+   z"PkgConfigDependency._detect_pkgbinY   sŠ  € ð
 Ô˜KÔ(¨EÐ1Ð1ÝŒJÐU°ÐUÐUÐUÑVÔVÐVÑVØÔ˜kÔ*Ð6ÝŒJÐH°ÐHÐHÐHÑIÔIÐIÐIàÔ# KÔ0Ð8Ð8¸*Ñ8Ô8Ð8ÝŒJÐL°ÐLÐLÐLÑMÔMÐMÝ$9Ø˜ k°<ØÔ)À5ð%Jñ %Jô %Jð 6ð 6Ð ð !$× 3Ò 3°CÐ9IÑ JÔ J�Ø$ð ØØð 3Ý”HÐ0µ$´)Ð<L×<UÒ<UÑ<WÔ<WÑ2XÔ2XØ1 Ð1Ð1Ð1ñ3ô 3ð 3à0@�Ô  Ñ-Ø�àð BÝ”HÐ0µ$´(¸4±.´.ÑAÔAÐAð 16�Ô  Ñ-àÔ Ô,Ð,rI   ÚargsúT.List[str]úT.Dict[str, str]úT.Tuple[int, str, str]c                óÊ  — t          | j        t          ¦  «        sJ ‚| j                             ¦   «         |z   }t	          ||¬¦  «        \  }}}|j        |                     ¦   «         |                     ¦   «         }}}d                     |¦  «        }t          j	        d|› d|› �¦  «         |rt          j	        d|› d�¦  «         |rt          j	        d|› d�¦  «         |||fS )N©r-   ú zCalled `z` -> zstdout:
z
-----------zstderr:
)
r2   r/   r   Úget_commandr   Ú
returncodeÚstripÚjoinr   r1   )	r=   rY   r-   ÚcmdÚpÚoutÚerrÚrcÚcalls	            rC   Ú_call_pkgbin_realz%PkgConfigDependency._call_pkgbin_realy   sí   € Ý˜$œ+¥Ñ7Ô7Ð7Ð7Ð7ØŒk×%Ò%Ñ'Ô'¨$Ñ.ˆÝ  ¨#Ð.Ñ.Ô.‰ˆˆ3�Ø”| S§Y¢Y¡[¤[°#·)²)±+´+�ˆCˆØ�xŠx˜‰}Œ}ˆÝŒ
Ð-˜dÐ-Ð-¨Ð-Ð-Ñ.Ô.Ð.Øð 	7ÝŒJÐ5 3Ð5Ð5Ð5Ñ6Ô6Ð6Øð 	7ÝŒJÐ5 3Ð5Ð5Ð5Ñ6Ô6Ð6Ø�3˜ˆ|ÐrI   FÚuninstalledú'EnvironmentVariables'c                ó.  — ddl m}  |¦   «         }t          d|¬¦  «        }| j        j        |         j        d d …         }|rMt          |                      ¦   «         d¦  «                             ¦   «         }||vr| 	                    |¦  «         | 
                    d|¦  «         | j        |                              ¦   «         }|r| 
                    d|g¦  «         | j        |                              ¦   «         }	|	r| 
                    d|	¦  «         |S )	Nr
   r   Úpkg_config_path©Úmachinezmeson-uninstalledÚPKG_CONFIG_PATHÚPKG_CONFIG_SYSROOT_DIRÚPKG_CONFIG_LIBDIR)Úbuildr   r   ÚcoredataÚoptionsÚvaluer   Úget_build_dirÚas_posixÚappendÚsetÚ
propertiesÚget_sys_rootÚget_pkg_config_libdir)
r   r.   rk   r   r-   ÚkeyÚextra_pathsÚuninstalled_pathÚsysrootÚpkg_config_libdir_props
             rC   Úget_envzPkgConfigDependency.get_env†   s/  € ð 	1Ð0Ð0Ð0Ð0Ð0Ø"Ð"Ñ$Ô$ˆÝÐ)°;Ð?Ñ?Ô?ˆØ#.Ô#7Ô#?ÀÔ#DÔ#JÈ1È1È1Ô#MˆØð 	5Ý# K×$=Ò$=Ñ$?Ô$?ÐATÑUÔU×^Ò^Ñ`Ô`ÐØ {Ð2Ð2Ø×"Ò"Ð#3Ñ4Ô4Ð4Ø�ŠÐ! ;Ñ/Ô/Ð/ØÔ(¨Ô5×BÒBÑDÔDˆØð 	9Ø�GŠGÐ,¨w¨iÑ8Ô8Ð8Ø!,Ô!7¸Ô!D×!ZÒ!ZÑ!\Ô!\ÐØ!ð 	AØ�GŠGÐ'Ð)?Ñ@Ô@Ð@Øˆ
rI   úT.MutableMapping[str, str]c                óú   — t                                |||¦  «        }|                     | ¦  «        } |                      ¦   «         D ]4\  }}|                     d¦  «        rt	          j        d|› d|› �¦  «         Œ5| S )NÚPKG_zenv[z]: )r   r„   ÚitemsÚ
startswithr   r1   )r-   r   r.   rk   Úenvvarsr   rw   s          rC   Ú	setup_envzPkgConfigDependency.setup_envš   s‚   € õ &×-Ò-¨k¸;ÈÑTÔTˆØ�oŠo˜cÑ"Ô"ˆàŸ)š)™+œ+ð 	3ð 	3‰JˆC�Ø�~Š~˜fÑ%Ô%ð 3Ý”
Ð1 #Ð1Ð1¨%Ð1Ð1Ñ2Ô2Ð2øØˆ
rI   ú&T.Optional[T.MutableMapping[str, str]]c                ó”  — t          | j        t          ¦  «        sJ ‚|pt          j        }t
                               || j        | j        ¦  «        }t          | 
                    ¦   «         ¦  «        }t          |¦  «        }t
          j        }| j        ||f|vr!|                      ||¦  «        || j        ||f<   || j        ||f         S ©N)r2   r/   r   ÚosÚenvironr   r‹   r-   r.   Ú	frozensetrˆ   Útupler   rj   )r=   rY   r-   ÚfenvÚtargsÚcaches         rC   r5   z PkgConfigDependency._call_pkgbin¥   sµ   € Ý˜$œ+¥Ñ7Ô7Ð7Ð7Ð7ØÐ•R”ZˆÝ!×+Ò+¨C°´¸4Ô;KÑLÔLˆå˜Ÿš™œÑ%Ô%ˆÝ�d‘”ˆÝ#Ô0ˆØŒK˜ Ð%¨UÐ2Ð2Ø04×0FÒ0FÀtÈSÑ0QÔ0QˆE�4”;  tÐ,Ñ-Ø�d”k 5¨$Ð/Ô0Ð0rI   c           	     ó*  — | j         j        j                             ¦   «         s|S g }|D �]g}t	          ¦   «         }|                     d¦  «        rt          |dd…         ¦  «        j        }d}nª|                     d¦  «        rt          |dd…         ¦  «        j        }d}nv|                     d¦  «        rt          |¦  «        j        }d}nJ|                     d	¦  «        st          |¦  «        dk    r"|d
         dk    r| 	                    dd¦  «        }t          |¦  «        d
k    rPt          |d
         ¦  «        d
k    r7| 
                    |d
         d                     |dd…         ¦  «        ¦  «        }|                     |¦  «         �Œi|S )a$  
        Both MSVC and native Python on Windows cannot handle MinGW-esque /c/foo
        paths so convert them to C:/foo. We cannot resolve other paths starting
        with / like /home/foo so leave them as-is so that the user gets an
        error/warning from the compiler/linker.
        z-L/r
   Nz-L{}:/{}z-I/z-I{}:/{}ú/z{}:/{})ú-Lz-Ir   ú:z\ r_   )r-   Úmachinesrt   Ú
is_windowsr’   r‰   r   ÚpartsÚlenÚreplacer3   rc   rz   )r=   rY   Ú	convertedÚargÚpargsÚtmpls         rC   Ú_convert_mingw_pathsz(PkgConfigDependency._convert_mingw_paths±   s}  € ð ŒxÔ Ô&×1Ò1Ñ3Ô3ð 	ØˆKØˆ	Øð 	"ñ 	"ˆCÝ',¡w¤wˆEà�~Š~˜eÑ$Ô$ð .Ý   Q R R¤Ñ)Ô)Ô/�Ø!��Ø—’ Ñ&Ô&ð 	.Ý   Q R R¤Ñ)Ô)Ô/�Ø!��à—’ Ñ$Ô$ð .Ý  ™œÔ+�Ø��Ø—’ Ñ-Ô-ð .µ#°c±(´(¸Q²,°,À3ÀqÄ6ÈSÂ=À=à—k’k %¨Ñ-Ô-�Ý�5‰zŒz˜AŠ~ˆ~¥# e¨A¤h¡-¤-°1Ò"4Ð"4Ø—k’k %¨¤(¨C¯HªH°U¸1¸2¸2´YÑ,?Ô,?Ñ@Ô@�Ø×Ò˜SÑ!Ô!Ð!Ñ!ØÐrI   rd   c                ó*   — t          j        |¦  «        S rŽ   )ÚshlexÚsplit)r=   rd   s     rC   Ú_split_argszPkgConfigDependency._split_argsÐ   s   € õ Œ{˜3ÑÔÐrI   c                óF  — d }| j         dk    r#t          j                             ¦   «         }d|d<   |                      d| j        g|¬¦  «        \  }}}|dk    rt          d| j        › d|› d	�¦  «        ‚|                      |                      |¦  «        ¦  «        | _	        d S )
NÚfortranÚ1ÚPKG_CONFIG_ALLOW_SYSTEM_CFLAGSz--cflagsr^   r   zCould not generate cargs for ú:
ú
)
r"   r�   r�   Úcopyr5   r   r   r£   r§   r:   )r=   r-   r?   rf   rg   s        rC   r8   zPkgConfigDependency._set_cargsÕ   s¯   € ØˆØŒ=˜IÒ%Ð%õ ”*—/’/Ñ#Ô#ˆCØ47ˆCÐ0Ñ1Ø×)Ò)¨:°t´yÐ*AÀsÐ)ÑKÔK‰ˆˆS�#Ø�!Š8ˆ8Ý%Ð&[ÀdÄiÐ&[Ð&[ÐTWÐ&[Ð&[Ð&[Ñ\Ô\Ð\Ø ×5Ò5°d×6FÒ6FÀsÑ6KÔ6KÑLÔLˆÔÐÐrI   rf   Úout_rawú!T.Tuple[T.List[str], T.List[str]]c                ó.
  — t          ¦   «         }|                      |                      |¦  «        ¦  «        }|D ]¡}|                     d¦  «        rŠ|                     d¦  «        su|dd…         }t          j                             |¦  «        s7t          j                             | j         	                    ¦   «         |¦  «        }| 
                    |¦  «         Œ¢| j        j        j        t          d| j        ¬¦  «                 j        }|                      |¦  «        }t          t!          t#          |¦  «        |¦  «        ¦  «        }t          ¦   «         }|                      |                      |¦  «        ¦  «        }	|	D ]V}|                     d¦  «        rŒ|                     d¦  «        r)|dd…         |vr| 
                    |dd…         ¦  «         ŒWt#          |¦  «        t#          |¦  «        z   }
t          ¦   «         }g }g }|	D �]ô}|                     d¦  «        r�nÅ|                     d¦  «        rŒ0|                     d¦  «        r¨||v rŒJ|dd…         }d}|
D ]E}t          j                             ||¦  «        }t          j                             |¦  «        r|} nŒF|€I||v rŒ¥t'          j        d	                     || j        ¦  «        ¦  «         |                     |¦  «         �nö|}�nò|                     d
¦  «        rØ||v r�Œ| j        r0| j                             |dd…         | j        |
| j        ¦  «        }nd}|�>| 
                    |¦  «         |r%|d                              d
¦  «        s|d         }�n`�Œ�||v r�Œ‡| j        r5t'          j        d                     |dd…         | j        ¦  «        ¦  «         |                     |¦  «         �n|                     d¦  «        rð|                      |¦  «        }t          j                             t          j                             |¦  «        |¦  «        }t          j                             |¦  «        s>t          j                             t          j                             |¦  «        d|¦  «        }t          j                             |¦  «        st?          d|› d�¦  «        ‚d| _         |}||v r�Œß|                     |¦  «         �Œö|rd„ |D ¦   «         |z   }||fS )aI  
        @out: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 pkg-config --libs
        @out_raw: pkg-config --libs

        We always look for the file ourselves instead of depending on the
        compiler to find it with -lfoo or foo.lib (if possible) because:
        1. We want to be able to select static or shared
        2. We need the full path of the library to calculate RPATH values
        3. De-dup of libraries is easier when we have absolute paths

        Libraries that are provided by the toolchain or are not found by
        find_library() will be added with -L -l pairs.
        r˜   )z-L-lz-L-Lr
   Nrn   ro   z-l:é   zJLibrary {!r} not found for dependency {!r}, may not be successfully linkedz-lr   zOStatic library {!r} not found for dependency {!r}, may not be statically linkedz.laz.libszGot a libtools specific "zD" dependenciesbut we could not compute the actual sharedlibrary pathTc                ó   — g | ]}d |z   ‘ŒS )r˜   © )Ú.0Úlps     rC   ú
<listcomp>z4PkgConfigDependency._search_libs.<locals>.<listcomp>u  s   € Ð=Ð=Ð= r˜ ™Ð=Ð=Ð=rI   )!r   r£   r§   r‰   r�   ÚpathÚisabsrc   r-   rx   Úaddru   rv   r   r.   rw   r   ÚlistÚexistsr   Úwarningr3   r   rz   Úclib_compilerÚfind_libraryÚlibtypeÚstaticÚendswithÚextract_libtool_shlibÚdirnamer   r*   )r=   rf   r¯   Úprefix_libpathsÚraw_link_argsr    r¸   rn   Úsystem_libpathsÚ	full_argsÚlibpathsÚ
libs_foundÚlibs_notfoundr;   ÚlibÚlibfilenameÚ	foundnameÚlibdirÚtargetrY   Úshared_libnameÚ
shared_libs                         rC   Ú_search_libsz PkgConfigDependency._search_libsá   s@  € õ2 ,6©<¬<ˆà×1Ò1°$×2BÒ2BÀ7Ñ2KÔ2KÑLÔLˆØ ð 	*ð 	*ˆCØ�~Š~˜dÑ#Ô#ð *¨C¯NªNÐ;KÑ,LÔ,Lð *Ø˜1˜2˜2”w�Ý”w—}’} TÑ*Ô*ð Håœ7Ÿ<š<¨¬×(>Ò(>Ñ(@Ô(@À$ÑGÔG�DØ×#Ò# DÑ)Ô)Ð)øð (,¤xÔ'8Ô'@ÅÐK\ÐfjÔfvÐAwÑAwÔAwÔ'xÔ'~ˆØ×3Ò3°OÑDÔDˆÝ$¥]µ4¸Ñ3HÔ3HÈ/Ñ%ZÔ%ZÑ[Ô[ˆÝ+5©<¬<ˆØ×-Ò-¨d×.>Ò.>¸sÑ.CÔ.CÑDÔDˆ	Øð 	-ð 	-ˆCØ�~Š~Ð.Ñ/Ô/ð àØ�~Š~˜dÑ#Ô#ð -¨¨A¨B¨B¬°Ð(FÐ(FØ×#Ò# C¨¨¨¤GÑ,Ô,Ð,øå˜Ñ(Ô(­4°Ñ+@Ô+@Ñ@ˆå&0¡l¤lˆ
àˆàˆ	Øð P	"ñ P	"ˆCØ�~Š~Ð.Ñ/Ô/ð NáØ—’ Ñ%Ô%ð KàØ—’ Ñ&Ô&ð Hð ˜*Ð$Ð$ØØ! ! " "œg�Ø �	Ø&ð ð �FÝœWŸ\š\¨&°+Ñ>Ô>�FÝ”w—~’~ fÑ-Ô-ð Ø$*˜	Ø˜ðð Ð$Ø˜mÐ+Ð+Ø åœð &BßBHÂ&ÈÐVZÔV_ÑB`ÔB`ñbô bð bà!×(Ò(¨Ñ-Ô-Ð-Ñ-à#�C‘CØ—’ Ñ%Ô%ð 0à˜*Ð$Ð$ÙØÔ%ð  ØÔ-×:Ò:¸3¸q¸r¸r¼7ÀDÄHØ;CÀTÄ\ñSô S�D�Dð  �DØÐ#Ø—N’N 3Ñ'Ô'Ð'ð ð !Ø# Aœw×1Ò1°$Ñ7Ô7ð *Ø"& q¤'˜Cùá ð ˜mÐ+Ð+Ù Ø”{ð \Ýœð &@ß@FÂÀsÈ1È2È2ÄwÐPTÔPYÑ@ZÔ@Zñ\ô \ð \à!×(Ò(¨Ñ-Ô-Ð-Ñ-Ø—’˜eÑ$Ô$ð Ø!%×!;Ò!;¸CÑ!@Ô!@�ÝœWŸ\š\­"¬'¯/ª/¸#Ñ*>Ô*>ÀÑOÔO�
Ý”w—~’~ jÑ1Ô1ð ]Ý!#¤§¢­b¬g¯oªo¸cÑ.BÔ.BÀGÈ^Ñ!\Ô!\�Jå”w—~’~ jÑ1Ô1ð >Ý-ð /=È#ð /=ð /=ð /=ñ >ô >ð >ð #'�”Ø �Ø˜)Ð#Ð#ÙØ×Ò˜SÑ!Ô!Ð!Ñ!àð 	Jð >Ð=¨_Ð=Ñ=Ô=À	ÑIˆIØ˜-Ð'Ð'rI   c                óò  — d }dg}| j         r|                     d¦  «         |                     | j        ¦  «         t          j                             ¦   «         }d|d<   |                      ||¬¦  «        \  }}}|dk    rt          d| j        › d|› d	�¦  «        ‚|                      |¦  «        \  }}}|dk    rt          d| j        › d
|› �¦  «        ‚|                      ||¦  «        \  | _	        | _
        d S )Nz--libsz--staticrª   ÚPKG_CONFIG_ALLOW_SYSTEM_LIBSr^   r   zCould not generate libs for r¬   r­   z:

)rÁ   rz   r   r�   r�   r®   r5   r   rÓ   r;   rÆ   )r=   r-   Úlibcmdr?   rf   rg   r¯   Úerr_raws           rC   r9   zPkgConfigDependency._set_libsx  s  € ØˆØ�ˆàŒ;ð 	&Ø�MŠM˜*Ñ%Ô%Ð%à�Š�d”iÑ Ô Ð õ Œj�oŠoÑÔˆØ.1ˆÐ*Ñ+Ø×)Ò)¨&°cÐ)Ñ:Ô:‰ˆˆS�#Ø�!Š8ˆ8Ý%Ð&ZÀTÄYÐ&ZÐ&ZÐSVÐ&ZÐ&ZÐ&ZÑ[Ô[Ð[ð !%× 1Ò 1°&Ñ 9Ô 9ÑˆˆW�gØ�!Š8ˆ8Ý%Ð&^ÀTÄYÐ&^Ð&^ÐU\Ð&^Ð&^Ñ_Ô_Ð_Ø-1×->Ò->¸sÀGÑ-LÔ-LÑ*ˆŒ˜Ô*Ð*Ð*rI   Úvariable_nameÚdefine_variableú'ImmutableListProtocol[str]'Údefaultc                ó  — d|z   | j         g}|rdd                     |¦  «        z   g|z   }|                      |¦  «        \  }}}d}|dk    r#| j        rt	          d| j         › d|› d�¦  «        ‚n�|                     ¦   «         }|sk|                      d	| j         g¦  «        \  }}}	t          j        d
|z   dz   |t          j        ¦  «        s%|�|}n t          j
        d|› d| j         › d�¦  «         t          j        d|› d|› �¦  «         |S )Nz--variable=z--define-variable=ú=Ú r   zdependency z not found:
r­   z--print-variablesú^ú$zpkgconfig variable 'z' not defined for dependency ú.zGot pkgconfig variable z : )r   rc   r5   r0   r   rb   ÚreÚsearchÚ	MULTILINEr   r½   r1   )
r=   rØ   rÙ   rÛ   rv   r?   rf   rg   Úvariabler@   s
             rC   Úget_pkgconfig_variablez*PkgConfigDependency.get_pkgconfig_variable�  sR  € ð ! =Ñ0°$´)Ð<ˆàð 	SØ+¨c¯hªh°Ñ.GÔ.GÑGÐHÈ7ÑRˆGà×)Ò)¨'Ñ2Ô2‰ˆˆS�#ØˆØ�!Š8ˆ8ØŒ}ð YÝ)Ð*W¸¼	Ð*WÐ*WÐPSÐ*WÐ*WÐ*WÑXÔXÐXðYð —y’y‘{”{ˆHð ð vØ"×/Ò/Ð1DÀdÄiÐ0PÑQÔQ‘��S˜!Ý”y ¨Ñ!5¸Ñ!<¸cÅ2Ä<ÑPÔPð vØÐ*Ø#*˜˜åœÐ%t¸MÐ%tÐ%tÐhlÔhqÐ%tÐ%tÐ%tÑuÔuÐuåŒ
ÐI¨]ÐIÐI¸xÐIÐIÑJÔJÐJØˆrI   r/   r   c                ó   — |                      ¦   «         st          j        d|j        ›�¦  «         d S d                     |                     ¦   «         ¦  «        }	 t          |                     ¦   «         dgz   ¦  «        d         }d|v rt          j        d|›d�¦  «         d S t          |                     ¦   «         dgz   ¦  «        d	d
…         \  }}|j        d	k    rt          j        d|›d�¦  «         d S nr# t          $ r t          j        d|›d�¦  «         Y d S t          $ rA d|›d�}| j        j                             ¦   «         s|dz  }t          j        |¦  «         Y d S w xY w|                     ¦   «         S )Nz Did not find pkg-config by name r_   z--helpr   z	Pure-Perlzfound pkg-config z7 but it is Strawberry Perl and thus broken. Ignoring...z	--versionr   r
   zFound pkg-config z but it failed when runzWe thought we found pkg-config z! but now it's not there. How odd!z' but didn't have permissions to run it.zO

On Unix-like systems this is often caused by scripts that are not executable.)Úfoundr   rS   r   rc   r`   r   ra   r½   ÚFileNotFoundErrorÚPermissionErrorrš   rt   r›   rb   )r-   r/   Úcommand_as_stringÚhelptextre   rf   r>   s          rC   rR   z#PkgConfigDependency.check_pkgconfig­  s¸  € à�|Š|‰~Œ~ð 	ÝŒHÐG¸¼ÐGÐGÑHÔHÐHØ�4ØŸHšH V×%7Ò%7Ñ%9Ô%9Ñ:Ô:Ðð	Ý! &×"4Ò"4Ñ"6Ô"6¸(¸Ñ"CÑDÔDÀQÔGˆHØ˜hÐ&Ð&Ý”ÐyÐ->ÐyÐyÐyÑzÔzÐzØ�tÝ × 2Ò 2Ñ 4Ô 4¸°}Ñ DÑEÔEÀaÈÀcÔJ‰FˆAˆsØŒ|˜qÒ Ð Ý”Ð]Ð1BÐ]Ð]Ð]Ñ^Ô^Ð^Ø�tð !øõ !ð 	ð 	ð 	ÝŒLÐrÐ;LÐrÐrÐrÑsÔsÐsØ�4�4Ýð 	ð 	ð 	ØcÐ&7ÐcÐcÐcˆCØ”<Ô%×0Ò0Ñ2Ô2ð kØÐjÑj�ÝŒL˜ÑÔÐØ�4�4ð	øøøð �yŠy‰{Œ{Ðs!   ÁAC: Â$AC: Ã:"E)ÄAE)Å(E)Úla_fileÚ	fieldnamec                ó  — t          |d¬¦  «        5 }|D ]S}|                     ¦   «                              d¦  «        }|d         |k    r|d         dd…         c cd d d ¦  «         S ŒT	 d d d ¦  «         n# 1 swxY w Y   d S )Nzutf-8)ÚencodingrÝ   r   r   éÿÿÿÿ)Úopenrb   r¦   )r=   rí   rî   ÚfÚlineÚarrs         rC   Úextract_fieldz!PkgConfigDependency.extract_fieldÇ  sî   € Ý�' GÐ,Ñ,Ô,ð 	(°Øð (ð (�Ø—j’j‘l”l×(Ò(¨Ñ-Ô-�Ø�q”6˜YÒ&Ð&Ø˜qœ6 ! B $œ<Ð'Ð'ð		(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 'ð(ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð
 ˆts   ’A	A6Á(A6Á6A:Á=A:c                ó.   — |                       |d¦  «        S )NÚdlname©rö   ©r=   rí   s     rC   Úextract_dlname_fieldz(PkgConfigDependency.extract_dlname_fieldÏ  ó   € Ø×!Ò! '¨8Ñ4Ô4Ð4rI   c                ó.   — |                       |d¦  «        S )NrÏ   rù   rú   s     rC   Úextract_libdir_fieldz(PkgConfigDependency.extract_libdir_fieldÒ  rü   rI   c                ót  — |                       |¦  «        }|€dS | j        j        | j                                      ¦   «         rXt
          j                             |¦  «        }|                      |¦  «        }|€|S t
          j         	                    ||¦  «        S t
          j                             |¦  «        S )z_
        Returns the path to the shared library
        corresponding to this .la file
        N)
rû   r-   rš   r.   Ú	is_darwinr�   r¸   Úbasenamerþ   rc   )r=   rí   rø   Ú
dlbasenamerÏ   s        rC   rÃ   z)PkgConfigDependency.extract_libtool_shlibÕ  s¥   € ð
 ×*Ò*¨7Ñ3Ô3ˆØˆ>Ø�4ð Œ8Ô˜TÔ-Ô.×8Ò8Ñ:Ô:ð 	4Ýœ×)Ò)¨&Ñ1Ô1ˆJØ×.Ò.¨wÑ7Ô7ˆFØˆ~Ø!Ð!Ý”7—<’< ¨
Ñ3Ô3Ð3õ Œw×Ò Ñ'Ô'Ð'rI   c                 ó   — dS )Nr'   r´   r´   rI   rC   Ú	log_triedzPkgConfigDependency.log_triedê  s   € àˆ{rI   )Úcmaker'   Ú
configtoolÚinternalÚdefault_valueÚpkgconfig_definer  r'   r  r  r  r	  úT.Optional[T.List[str]]c               ó†   — |r*	 |                       ||pg |¦  «        S # t          $ r Y nw xY w|�|S t          d| ›�¦  «        ‚)Nz>Could not get pkg-config variable and no default provided for )ræ   r   )r=   r  r'   r  r  r  r	  s          rC   Úget_variablez PkgConfigDependency.get_variableî  su   € ð ð 	ðØ×2Ò2°9Ð>NÐ>TÐRTÐVcÑdÔdÐdøÝ&ð ð ð Ø�ðøøøàÐ$Ø Ð Ý!Ð"kÐcgÐ"kÐ"kÑlÔlÐls   „ �
*©*rŽ   )
r   r   r   r   r    r!   r"   r#   r$   r%   )r$   r   )r,   rJ   r-   r   r.   r   r$   rK   )rY   rZ   r-   r[   r$   r\   )F)r   r   r.   r   rk   rJ   r$   rl   )
r-   r…   r   r   r.   r   rk   rJ   r$   r[   )rY   rZ   r-   rŒ   r$   r\   )rY   rZ   r$   rZ   )rd   r   r$   rZ   )r$   r%   )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   )rE   Ú
__module__Ú__qualname__r   r   Ú__annotations__r   r)   rH   Úclassmethodr+   rj   Ústaticmethodr„   r‹   r5   r£   r§   r8   rÓ   r9   ræ   rR   rö   rû   rþ   rÃ   r  r  Ú__classcell__)rB   s   @rC   r   r   "   sˆ  ø€ € € € € € ð FPÀZÐPTÐVZÑE[ÔE[€LÐ[Ð[Ð[Ñ[ð
 	ð ð ð ð ñ ð
& ð & ð & ð & ð & ð & ð & ðP+ð +ð +ð +ð
 ð-ð -ð -ñ „[ð-ð>ð ð ð ð à$)ðð ð ð ñ „\ðð& à&+ðð ð ð ñ „\ðð
1ð 
1ð 
1ð 
1ð 
1ðð ð ð ð> ð  ð  ð  ð

Mð 
Mð 
Mð 
MðU(ð U(ð U(ð U(ðnMð Mð Mð Mð0ð ð ð ð: ðð ð ñ „\ðð2ð ð ð ð5ð 5ð 5ð 5ð5ð 5ð 5ð 5ð(ð (ð (ð (ð* ðð ð ñ „\ðð 8<ÐZ^Ø37ÐUYØ6:ØAEðmð mð mð mð mð mð mð mð mð mrI   r   )"Ú
__future__r   Úpathlibr   Úbaser   r   r   r	   Úmesonlibr   r   r   r   Úprogramsr   r   rÞ   r   r   râ   r�   r¥   ÚtypingÚTÚTYPE_CHECKINGr   r   r   Ú_typingr   rt   r   r   r´   rI   rC   ú<module>r     sq  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð à„?ð -Ø)Ð)Ð)Ð)Ð)Ð)Ø(Ð(Ð(Ð(Ð(Ð(Ø/Ð/Ð/Ð/Ð/Ð/Ø,Ð,Ð,Ð,Ð,Ð,ðWmð Wmð Wmð Wmð WmÐ,ñ Wmô Wmð Wmð Wmð WmrI   