
    -Phl              
         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 ddl	mZmZ dd	l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 ddlmZ ej        rddlmZ ddlmZ  eej         ej!        h          did            Z"e"ed<    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'ed'<    G d( d)e          Z( G d* d+e          Z)e)ed,<    G d- d.e          Z* G d/ d0e          Z+ G d1 d2e          Z, G d3 d4e          Z- G d5 d6e          Z. G d7 d8e          Z/ G d9 d:e          Z0 G d; d<e          Z1 G d= d>e          Z2 G d? d@e          Z3 G dA dBe          Z4 G dC dDe          Z5 G dE dFe          Z6 G dG dHe          Z7 eej         ej8        ej9        h          didI            Z:e:edJ<    eej         ej9        h          didK            Z;e;edL<    edMej9        ej<        ge$e#N          xedM<   Z= edOej         ej8        ej>        ej!        ge+dPQ          xedO<   Z? edRej<        ej9        ge%e&S          xedR<   Z@ edTej         ej8        ge.U          xedT<   ZA edVej         ej8        ge-U          xedV<   ZB edWej         ej8        ge,U          xedW<   ZC edXej         ej8        ge*dYZ          xedX<   ZD ed[ej9        ej!        gd\e(]          xed[<   ZE ed^ej<        ej9        ge2e3S          xed^<   ZF ed_ej<        ej9        ge4e5S          xed_<   ZG ed`ej         ej9        ej!        ge6 edadbdcgd          e          xed`<   ZH edfej         ej9        ej!        ge6 edadbgd          e          xedf<   ZI edgej         ej9        ej!        ge6 edadcgd          e          xedg<   ZJe7edh<   dS )j    )annotationsN   )mesonlib)mlog   )DependencyExceptionDependencyMethods)BuiltinDependencySystemDependency)CMakeDependencyCMakeDependencyFactory)ConfigToolDependency)packages)DependencyFactoryfactory_methods)PkgConfigDependency)	OptionKey)Environment)DependencyGeneratorenv'Environment'for_machine'mesonlib.MachineChoice'kwargsT.Dict[str, T.Any]methodsT.List[DependencyMethods]returnT.List['DependencyGenerator']c           	     |   |                     d          }|d}|dvrt          d| d          g }t          j        |v r<|dk    rd}nd}|                    t          j        t          || ||	                     t          j        |v r1|                    t          j        t          d
| ||	                     |S )Nlanguagec)r"   cppfortranz	Language z is not supported with NetCDF.r$   znetcdf-fortrannetcdfr!   NetCDF)
getr   r	   	PKGCONFIGappend	functoolspartialr   CMAKEr   )r   r   r   r   r!   
candidatespkgs          \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/dependencies/misc.pynetcdf_factoryr1      s    
 zz*%%H...!"Vh"V"V"VWWW02J"g--y  "CCC)+,?c6\deeefff')))+OXsF]efffggg    r%   c                        e Zd Zd fdZ xZS )	AtomicBuiltinDependencynamestrr   r   r   r   c                    t                                          |||           d| _        | j                            dd|          d         r	d| _        d S d S )Nz1.7.0zSconsider checking for `atomic_flag_clear` with and without `find_library('atomic')`atomic_flag_clearz#include <stdatomic.h>r   Tsuper__init__feature_sinceclib_compilerhas_functionis_foundselfr5   r   r   	__class__s       r0   r<   z AtomicBuiltinDependency.__init__9   sb    sF+++}**+>@XZ]^^_`a 	! DMMM	! 	!r2   r5   r6   r   r   r   r   __name__
__module____qualname__r<   __classcell__rC   s   @r0   r4   r4   8   =        ! ! ! ! ! ! ! ! ! !r2   r4   c                        e Zd Zd fdZ xZS )	AtomicSystemDependencyr5   r6   r   r   r   r   c                   t                                          |||           d| _        | j                            dd|          }| j                            d|g | j                  | _        |d         r| j        rd| _        d S d S d S )Nr8   zstdatomic.h atomicr   T	r;   r<   r=   r>   
has_headerfind_librarylibtype	link_argsr@   rB   r5   r   r   hrC   s        r0   r<   zAtomicSystemDependency.__init__B   s    sF+++}))-SAA+883DLYYQ4 	!DN 	! DMMM	! 	! 	! 	!r2   rD   rE   rJ   s   @r0   rM   rM   A   =        ! ! ! ! ! ! ! ! ! !r2   rM   c                        e Zd Zd fdZ xZS )	DlBuiltinDependencyr5   r6   r   r   r   r   c                    t                                          |||           d| _        | j                            dd|          d         r	d| _        d S d S )Nz0.62.0zDconsider checking for `dlopen` with and without `find_library('dl')`dlopenz#include <dlfcn.h>r   Tr:   rA   s       r0   r<   zDlBuiltinDependency.__init__N   s`    sF+++o**85I3OOPQR 	! DMMM	! 	!r2   r5   r6   r   r   r   r   rE   rJ   s   @r0   rZ   rZ   M   rK   r2   rZ   c                        e Zd Zd fdZ xZS )	DlSystemDependencyr5   r6   r   r   r   r   c                   t                                          |||           d| _        | j                            dd|          }| j                            d|g | j                  | _        |d         r| j        rd| _        d S d S d S )Nr\   zdlfcn.hrO   dlr   TrQ   rV   s        r0   r<   zDlSystemDependency.__init__W   s    sF+++o)))R==+88sBUUQ4 	!DN 	! DMMM	! 	! 	! 	!r2   r^   rE   rJ   s   @r0   r`   r`   V   rX   r2   r`   c                  <     e Zd Zddddddddd	d
ddZd fdZ xZS )OpenMPDependencyz5.2z5.1z5.0z5.0-revision1z4.5z4.03.1z3.0z2.5z2.0z1.0)202111202011201811201611201511201307201107200805200505200203199810environmentr   r   r   r   Nonec                Z   |                     d          }t                                          d|||           d| _        | j                                        dk    r6d| _        d| _        | j                            |          x| _        | _	        d S | j                                        dk    r6d| _        d| _        | j                            |          x| _        | _	        d S 	 | j        
                    | j                            |                     | j	        
                    | j                            |                     nA# t          j        $ r/}t          j        d	t!          |          d
           Y d }~d S d }~ww xY w	 | j                            dd| j        g | gd          d         }nE# t          j        $ r3}t          j        d           t          j        |           Y d }~d S d }~ww xY w	 | j        |         | _        nB# t,          $ r5 t          j        d|            |dk    rt          j        d           Y d S w xY wd}|D ]7}| j                            |d| j        | gd          d         r
d| _         d S 8t          j        dd
           d S )Nr!   openmpr&   Fnagforre   Tpgiz%OpenMP support not available because:)fatal_OPENMPrO   disable_cacher   z,OpenMP support not available in the compilerz*Could not find an OpenMP version matching zbThis can be caused by flags such as gcc's `-fdirectives-only`, which affect preprocessor behavior.)zomp.hz	omp_lib.h)dependenciesrz   zOpenMP found but omp.h missing.)r(   r;   r<   r@   r>   get_idversionopenmp_flagscompile_argsrU   extendopenmp_link_flagsr   MesonExceptionr   warningr6   
get_definer   EnvironmentExceptiondebugVERSIONSKeyErrorrR   )	rB   rq   r   r!   eopenmp_dateheader_namesr5   rC   s	           r0   r<   zOpenMPDependency.__init__r   s   ::j));JJJ$$&&(22 DL DM151C1P1PQ\1]1]]DF$$&&%// DL DM151C1P1PQ\1]1]]DF	$$T%7%D%D[%Q%QRRRN!!$"4"F"F{"S"STTTT& 	 	 	L@#a&&PUVVVVFFFFF		,772txdV4 8 I IIJLKK, 	 	 	JEFFFJqMMMFFFFF	
	=5DLL 	 	 	JQKQQRRRi''
  A  B  B  BFF		 .  	I 	ID!,,T2txtfdh,iijkl  $ L:%HHHHHHsC   *A$E F$FF,F> >H (G;;H H ;IIrq   r   r   r   r   rr   )rF   rG   rH   r   r<   rI   rJ   s   @r0   rd   rd   b   sv         ! H0I 0I 0I 0I 0I 0I 0I 0I 0I 0Ir2   rd   rt   c                        e Zd Zd
 fd	Z xZS )ThreadDependencyr5   r6   rq   r   r   r   r   rr   c                   t                                          |||           d| _        | j        sg | _        g | _        d S | j                            |          | _        | j                            |          | _        d S )NT)r;   r<   r@   r>   r   rU   thread_flagsthread_link_flagsrB   r5   rq   r   rC   s       r0   r<   zThreadDependency.__init__   s|    {F333 ! 	O "DDNNN $ 2 ? ? L LD!/AA+NNDNNNr2   )r5   r6   rq   r   r   r   r   rr   rE   rJ   s   @r0   r   r      sG        
O 
O 
O 
O 
O 
O 
O 
O 
O 
Or2   r   c                        e Zd Zd fdZ xZS )	BlocksDependencyrq   r   r   r   r   rr   c                   t                                          d||           d| _        d| _        | j        j        | j                                                 rg | _        g | _	        nsdg| _        dg| _	        | j
                            dd|d          r| j
                            d	|g           s)t          j        t          j        d
          d           d S d}| j
                            || j        | j	        z             5 }|j        dk    r5t          j        t          j        d
          d           	 d d d            d S d| _        d d d            d S # 1 swxY w Y   d S )NblocksFz-fblocksz-lBlocksRuntimezBlock.hrO   Try   BlocksRuntimezERROR:zBlocksRuntime not found.z
            int main(int argc, char **argv)
            {
                int (^callback)(void) = ^ int (void) { return 0; };
                return callback();
            })
extra_argsr   z+Compiler does not support blocks extension.)r;   r<   r5   r@   r   machinesr   	is_darwinr   rU   r>   rR   rS   r   logredcompile
returncode)rB   rq   r   sourceprC   s        r0   r<   zBlocksDependency.__init__   s   ;777	8T-.88:: 
	 "DDNN!+D/0DN%00B[_0`` %22?KQSTT(++-GHHH ''4;Lt~;]'^^ 	!bc|q  (++-Z[[[	! 	! 	! 	! 	! 	! 	! 	!
 !DM	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   	4E
EE"%E"r   rE   rJ   s   @r0   r   r      s=        ! ! ! ! ! ! ! ! ! !r2   r   r   c                  6     e Zd ZdgZdZdZd fd	ZddZ xZS )PcapDependencyConfigToolzpcap-configz--helpr5   r6   rq   r   r   r   c                   t                                          |||           | j        sd S |                     dgd          | _        |                     dgd          | _        | j        |                                 | _        d S d S N--cflagsr   --libsrU   )r;   r<   r@   get_config_valuer   rU   r}   get_pcap_lib_versionr   s       r0   r<   z!PcapDependencyConfigTool.__init__   s    {F333} 	F 11:,OO..z;GG<4466DLLL  r2   r   T.Optional[str]c                   | j         j                            | j                  sd S | j                            ddd| j         g | g          }t          j        ddt          |                    }t          j        dd|          }|S )Npcap_lib_versionstringz#include <pcap.h>zlibpcap version rO   z -- Apple version.*$)	r   r   matches_build_machiner   r>   get_return_valueresubr6   )rB   vs     r0   r   z-PcapDependencyConfigTool.get_pcap_lib_version   s     x 66t7GHH 	4//0BH0CTXrTXSY[ [F&CFF33F*B22r2   r5   r6   rq   r   r   r   )r   r   )	rF   rG   rH   tools	tool_nameskip_versionr<   r   rI   rJ   s   @r0   r   r      sd        OEI L7 7 7 7 7 7       r2   r   c                  *     e Zd ZdgZdZd	 fdZ xZS )
CupsDependencyConfigToolzcups-configr5   r6   rq   r   r   r   c                    t                                          |||           | j        sd S |                     dgd          | _        |                     ddgd          | _        d S )Nr   r   	--ldflagsr   rU   r;   r<   r@   r   r   rU   r   s       r0   r<   z!CupsDependencyConfigTool.__init__   sh    {F333} 	F 11:,OO..X/FTTr2   r   rF   rG   rH   r   r   r<   rI   rJ   s   @r0   r   r      sS        OEIU U U U U U U U U Ur2   r   c                  *     e Zd ZdgZdZd	 fdZ xZS )
LibWmfDependencyConfigToolzlibwmf-configr5   r6   rq   r   r   r   c                    t                                          |||           | j        sd S |                     dgd          | _        |                     dgd          | _        d S r   r   r   s       r0   r<   z#LibWmfDependencyConfigTool.__init__  se    {F333} 	F 11:,OO..z;GGr2   r   r   rJ   s   @r0   r   r     sT        EIH H H H H H H H H Hr2   r   c                  *     e Zd ZdgZdZd	 fdZ xZS )
LibGCryptDependencyConfigToolzlibgcrypt-configr5   r6   rq   r   r   r   c                   t                                          |||           | j        sd S |                     dgd          | _        |                     dgd          | _        |                     dgd          d         | _        d S Nr   r   r   rU   z	--versionr}   r   r;   r<   r@   r   r   rU   r}   r   s       r0   r<   z&LibGCryptDependencyConfigTool.__init__      {F333} 	F 11:,OO..z;GG,,k]IFFqIr2   r   r   rJ   s   @r0   r   r     sT         E"IJ J J J J J J J J Jr2   r   c                  *     e Zd ZdgZdZd
 fd	Z xZS )GpgmeDependencyConfigToolzgpgme-configz
gpg-configr5   r6   rq   r   r   r   c                   t                                          |||           | j        sd S |                     dgd          | _        |                     dgd          | _        |                     dgd          d         | _        d S r   r   r   s       r0   r<   z"GpgmeDependencyConfigTool.__init__&  r   r2   r   r   rJ   s   @r0   r   r   !  sT        EIJ J J J J J J J J Jr2   r   c                        e Zd Zd fdZ xZS )ShadercDependencyrq   r   r   r   c                z   t                                          d||           d}d}||g}| j        r|                                 |                                 }|D ]\}|                    ||g           | _        | j        7d| _        | j        r&||k    r t          j	        d|d| j
        d            d S ]d S )Nshadercshaderc_combinedshaderc_sharedTzStatic library z not found for dependency z, may not be statically linked)r;   r<   staticreverseget_compilerrS   rU   r@   r   r   r5   )	rB   rq   r   
static_lib
shared_liblibscclibrC   s	           r0   r<   zShadercDependency.__init__1  s    K888'
%
J'; 	LLNNN   		 		C__S+rBBDN~) $; Q3*#4#4L "P: "P "P$(I"P "P "P Q Q Q  *		 		r2   rq   r   r   r   rE   rJ   s   @r0   r   r   /  s=                 r2   r   c                  2     e Zd ZdZdZg dZdd fdZ xZS )CursesConfigToolDependencyzUse the curses config tools.zcurses-config)zncursesw6-configzncursesw5-configzncurses6-configzncurses5-configzncurses5.4-configNr5   r6   r   r   r   r   r!   r   c                "   d }|j         j        r|j         j        j        dk    rdg}t                                          |||||           | j        sd S |                     dgd          | _        |                     dgd          | _        d S )Ndarwinz/usr/bin)exclude_pathsr   r   r   rU   )	r   buildsystemr;   r<   r@   r   r   rU   )rB   r5   r   r   r!   r   rC   s         r0   r<   z#CursesConfigToolDependency.__init__Q  s    
 < 	)#,"4";x"G"G'LMsFHMRRR} 	F 11:,OO..z;GGr2   N)r5   r6   r   r   r   r   r!   r   )rF   rG   rH   __doc__toolr   r<   rI   rJ   s   @r0   r   r   I  sc        &&DoooEH H H H H H H H H H Hr2   r   c                  $     e Zd ZdZd	 fdZ xZS )
CursesSystemDependencya  Curses dependency the hard way.

    This replaces hand rolled find_library() and has_header() calls. We
    provide this for portability reasons, there are a large number of curses
    implementations, and the differences between them can be very annoying.
    r5   r6   r   r   r   r   c           	        t                                          |||           ddgfdddgfdg dfdd	gfg}|D ]\  }}| j                            ||g           }|r|D ]}| j                            |d
|          }	|	d         rWd| _        || _        |                    d          r@| j                            dd| d|g | g          \  }
}|
	                    d          | _
        |                    d          rX| j                            dd| d|g | g          \  }}| j                            dd| d|g | g          \  }}| d| | _
        |                    d          }|r=| j
        r"t          j        | j
        |          ^| _        }nt          j        d           | j        r,t          j        d|           t          j        d|            n| j        r d S d S )Npdcurseszpdcurses/curses.hncurseswzncursesw/ncurses.h	ncurses.hncurses)zncurses/ncurses.hzncurses/curses.hr   curseszcurses.hrO   r   TNCURSES_VERSIONz
#include <>"PDC_VER_MAJORPDC_VER_MINOR.r}   z6Cannot determine version of curses to compare against.zCurses library:zCurses header:)r;   r<   r>   rS   rR   r@   rU   
startswithr   stripr}   r(   r   version_compare_manyr   r   r   )rB   r5   r   r   r.   r   headerslheaderrW   r   _v_majorv_minorreqrC   s                  r0   r<   zCursesSystemDependency.__init__i  s   sF+++ -.//=>OOOP%	

 '  	  	LC"//S"==A "% " "F*55fb#FFAt "(,)* >>)44 8#'#5#@#@ARTjagTjTjTjloqsvzu{#|#|DAq+,773<<DL>>*55 B)-);)F)FXnekXnXnXnpsuwz~y  *A  *AJGQ)-);)F)FXnekXnXnXnpsuwz~y  *A  *AJGQ.5+A+A+A+ADL %jj33 g#| g4<4QRVR^`c4d4d 1 $-e f f f= " J'8!<<< J'7@@@!E} ? 	  	r2   r^   )rF   rG   rH   r   r<   rI   rJ   s   @r0   r   r   `  sG         + + + + + + + + + +r2   r   c                        e Zd Zd fdZ xZS )	IconvBuiltinDependencyr5   r6   r   r   r   r   c                    t                                          |||           d| _        d}| j                            ||          d         r	d| _        d S d S )N)0.60.0zKconsider checking for `iconv_open` with and without `find_library('iconv')`z9#include <iconv.h>

int main() {
    iconv_open("","");
}r   Tr;   r<   r=   r>   linksr@   rB   r5   r   r   coderC   s        r0   r<   zIconvBuiltinDependency.__init__  sa    sF+++vR##D#..q1 	! DMMM	! 	!r2   r^   rE   rJ   s   @r0   r   r     =        ! ! ! ! ! ! ! ! ! !r2   r   c                        e Zd Zd fdZ xZS )	IconvSystemDependencyr5   r6   r   r   r   r   c                   t                                          |||           d| _        | j                            dd|          }| j                            d|g | j                  | _        |d         r| j        rd| _        d S d S d S )N)r   zIconsider checking for `iconv_open` with and without find_library('iconv')ziconv.hrO   iconvr   TrQ   rV   s        r0   r<   zIconvSystemDependency.__init__  s    sF+++t)))R==+88#r4<XXQ4 	!DN 	! DMMM	! 	! 	! 	!r2   r^   rE   rJ   s   @r0   r  r    rX   r2   r  c                        e Zd Zd fdZ xZS )	IntlBuiltinDependencyr5   r6   r   r   r   r   c                    t                                          |||           d| _        d}| j                            ||          d         r	d| _        d S d S )Nz0.59.0zHconsider checking for `ngettext` with and without `find_library('intl')`z@#include <libintl.h>

int main() {
    gettext("Hello world");
}r   Tr   r   s        r0   r<   zIntlBuiltinDependency.__init__  sa    sF+++sY##D#..q1 	! DMMM	! 	!r2   r^   rE   rJ   s   @r0   r  r    r  r2   r  c                        e Zd Zd fdZ xZS )	IntlSystemDependencyr5   r6   r   r   r   r   c                   t                                          |||           d| _        | j                            dd|          }| j                            d|g | j                  | _        |d         rI| j        rDd| _        | j	        r8| 
                    t          || j        ddi                    sd| _        d S d S d S d S d S )	Nr	  z	libintl.hrO   intlr   Tr   F)r;   r<   r=   r>   rR   rS   rT   rU   r@   r   _add_sub_dependencyiconv_factoryr   rV   s        r0   r<   zIntlSystemDependency.__init__  s    sF+++s))+r3??+88b$,WWQ4 	*DN 	* DM{ *//c4CSV^`dUe0f0fgg *$)DMMM	* 	* 	* 	** ** *r2   r^   rE   rJ   s   @r0   r  r    s=        * * * * * * * * * *r2   r  c                        e Zd Zd fdZ xZS )	OpensslSystemDependencyr5   r6   r   r   r   r   c                l   t                                          |||           d| j        d}| j                            dd|          d         sd S | j                            dd|g | g          d         | _        | j        s| j                            dd|g | g          d         sd S                     d	          fd
dD             }d                    d |d d         D                       t          t          d          |d         z   dz
            z   | _        |dk    r[|                     t          || j        |                    r0|                     t          || j        |                    rd| _        d S | j                            |                    d          |g | j                  | _        | j        sd S | j        s	d| _        d S |dk    r4|                     t          || j        |                    r	d| _        d S d S |dk    r| j                            ddd|| g          d         }|r)|                     t+          || j        i                     rd| _        | j                            d|g | j                  }|r| j                            |           d S d S d S )Nr   )methodr   zopenssl/ssl.hrO   r   OPENSSL_VERSION_STRz#include <openssl/opensslv.h>OPENSSL_VERSION_NUMBERLc                h    g | ].}t                              d           d          d|z   z	  dz  /S )r           )intrstrip).0iversion_hexs     r0   
<listcomp>z4OpensslSystemDependency.__init__.<locals>.<listcomp>  s@    iiiUVc+"4"4S"9"92>>!a%G4Oiiir2   )   r     r   r   c              3  4   K   | ]}t          |          V  d S r   )r6   )r  r  s     r0   	<genexpr>z3OpensslSystemDependency.__init__.<locals>.<genexpr>  s(      #E#EqCFF#E#E#E#E#E#Er2      ar   opensslTr   libssl	libcryptozopenssl/opensslconf.hOPENSSL_THREADS)r{   rb   )r;   r<   r   r>   rR   r   r}   r  joinchrordr  libssl_factoryr   libcrypto_factoryr@   rS   lstriprT   rU   has_header_symbolthreads_factoryr   )
rB   r5   r   r   dependency_kwargsversion_intsuse_threadssublibr  rC   s
           @r0   r<   z OpensslSystemDependency.__init__  sA   sF+++ k
 
 !,,_b#FFqI 	F )445JLkmprtw{v|}}~  A| 	l,778PRqsvxz  ~B  }C  D  D  EF  GK %,,S11KiiiiZhiiiL88#E#EL!4D#E#E#EEECPSHHWcdeWfLfijLjHkHkkDL9''sD<LN_(`(`aa %,,->sDDTVg-h-hii% $F!/<<T[[=O=OQTVXZ^ZfggDN> { 	2 DMMMx++,=c4CSUf,g,ghh )$(DMMM) )$$"0BBCZ\moqsv  GK  FLB  M  M  NO  P" )d&>&>sTXTdfh?i?i&j&j )$(DM+88sBUU 2N))&11111 %$2 2r2   r^   rE   rJ   s   @r0   r  r    s=        -2 -2 -2 -2 -2 -2 -2 -2 -2 -2r2   r  c                  *     e Zd ZdgZdZd fdZ xZS )ObjFWDependencyzobjfw-configrq   r   r   r   c                   t                                          d||           d| _        | j        sd S g }t	          j        t	          j        |d                    D ],}|                    d           |                    |           -|                     g d|z   d          | _	        |                     ddg|z   d	          | _
        d S )
Nobjfw)z1.5.0rO   modulesz	--package)z
--cppflagsr   z--objcflagsr   r   r   rU   )r;   r<   r=   r@   r   stringlistifyextract_as_listr*   r   r   rU   )rB   rq   r   extra_flagsmodulerC   s        r0   r<   zObjFWDependency.__init__  s    +v666*} 	F ,X-Efi-X-XYY 	' 	'F{+++v&&&& !112[2[2[^i2ikyzz..X/F/TVabbr2   r   r   rJ   s   @r0   r8  r8    sT        EIc c c c c c c c c cr2   r8  c           	        g }t           j        |v r8g d}|D ]1}|                    t          j        t
          || |                     2| j        |                                         szt           j        |v r/|                    t          j        t          d| |                     t           j
        |v r/|                    t          j        t          d| |                     |S )N)r   r   r   r   r   )r	   r)   r*   r+   r,   r   r   
is_windowsCONFIG_TOOLr   SYSTEMr   )r   r   r   r   r.   pkgconfig_filesr/   s          r0   curses_factoryrE    s    
 13J"g--GGG" 	X 	XCi/0CS#vVVWWWW
 <$//11 `(G33i/0JHVY[abbccc#w..i/0FRUW]^^___r2   r   c                    g }t           j        |v rdg}ddg}                    d j        j                            t          d                              r fd||z   D             }n fd||z   D             }|                    |           t           j        |v r.|	                    t          j        t                                |S )zCustom DependencyFactory for ShaderC.

    ShaderC's odd you get three different libraries from the same build
    thing are just easier to represent as a separate function than
    twisting DependencyFactory even more.
    r   r   shaderc_staticr   prefer_staticc                H    g | ]}t          j        t          |          S  r+   r,   r   r  r5   r   r   s     r0   r   z#shaderc_factory.<locals>.<listcomp>@  ;     8 8 8 "#6c6JJ 8 8 8r2   c                H    g | ]}t          j        t          |          S rJ  rK  rL  s     r0   r   z#shaderc_factory.<locals>.<listcomp>C  rM  r2   )r	   r)   r(   coredataoptstoreget_value_forr   r   rC  r*   r+   r,   r   )r   r   r   r   r.   shared_libsstatic_libsr"   s   ` `     r0   shaderc_factoryrT  *  s    13J"g--
 !k)+;<::h 5 C CIoD^D^ _ _`` 	88 8 8 8 8(;68 8 8AA8 8 8 8 8(;68 8 8A!7**)+,=sFKKLLLr2   r   rP   )system_classbuiltin_classcupsCups)configtool_class
cmake_namerb   )rV  rU  gpgme)rY  	libgcryptlibwmfpcaplibpcap)rY  pkgconfig_namethreadsThreads)rZ  rU  r  r  r'  OpenSSLzOpenSSL::CryptozOpenSSL::SSL)r;  )rU  cmake_classr)  r(  r:  )
r   r   r   r   r   r   r   r   r   r   )K
__future__r   r+   r   typingTrO   r   r   baser   r	   r
   r   cmaker   r   
configtoolr   detectr   factoryr   r   	pkgconfigr   optionsr   TYPE_CHECKINGrq   r   r   r)   r-   r1   r4   rM   rZ   r`   rd   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r8  rB  rC  rE  rT  BUILTINatomic_factoryEXTRAFRAMEWORKcups_factory
dl_factorygpgme_factorylibgcrypt_factorylibwmf_factorypcap_factoryr2  r  intl_factoryopenssl_factoryr/  r.  rJ  r2   r0   <module>r{     st	  
 # " " " " "     				                 8 8 8 8 8 8 8 8 5 5 5 5 5 5 5 5 : : : : : : : : , , , , , ,       7 7 7 7 7 7 7 7 * * * * * *      ? -)))))),,,,,, #-/@/FGHH   IH2 $ ! ! ! ! !/ ! ! !	! 	! 	! 	! 	!- 	! 	! 	!! ! ! ! !+ ! ! !	! 	! 	! 	! 	!) 	! 	! 	!@I @I @I @I @I' @I @I @ID & O O O O O' O O O! ! ! ! !' ! ! !@ &     3   B
U 
U 
U 
U 
U3 
U 
U 
U
H 
H 
H 
H 
H!5 
H 
H 
HJ J J J J$8 J J JJ J J J J 4 J J J    (   4H H H H H!5 H H H.4 4 4 4 4- 4 4 4n! ! ! ! !. ! ! !	! 	! 	! 	! 	!, 	! 	! 	!! ! ! ! !- ! ! !* * * * *+ * * * .2 .2 .2 .2 .2. .2 .2 .2bc c c c c* c c c0 #-/@/LN_Nfghh   ih, $  #-/@/GHII   JI@ &  '8&7089')	' ' '  ^ #4"3
 "3"?ARAactcz{-	# # #  < 0/ 1 89%#	    %6$5 "3"?@.% % %  M ->,= "3"?@2- - -  ) '8&7 "3"?@/' ' '  ^ #4"3
 "3"?@-	# # #  < ):(9067!	) ) )  o %6$5 1 89(&	% % %  M #4"3
 1 89'%	# # #  < ):(9 "3":<M<ST(&&y;Ln:]^^^	) ) )  o ->,= "3":<M<ST(&&y;L:MNNN	- - -  ) '8&7 "3":<M<ST(&&y>:JKKK	' ' '  ^ $   r2   