
    jl              
      l   S SK Jr  S SKrS SKrS SKrSSKJr  SSKJr  SSK	J
r
Jr  SSK	JrJr  SS	KJrJr  SS
KJr  SSKJr  SSKJrJr  SSKJr  SSKJr  \R8                  (       a  SSKJr  SSKJr  \" \R@                  \RB                  15              SaS j5       r"\"\S'    " S S\5      r# " S S\5      r$ " S S\5      r% " S S\5      r& " S S\5      r'\'\S'    " S S\5      r( " S  S!\5      r)\)\S"'    " S# S$\5      r* " S% S&\5      r+ " S' S(\5      r, " S) S*\5      r- " S+ S,\5      r. " S- S.\5      r/ " S/ S0\5      r0 " S1 S2\5      r1 " S3 S4\5      r2 " S5 S6\5      r3 " S7 S8\5      r4 " S9 S:\5      r5 " S; S<\5      r6 " S= S>\5      r7\" \R@                  \Rp                  \Rr                  15              SaS? j5       r:\:\S@'   \" \R@                  \Rr                  15              SaSA j5       r;\;\SB'   \" SC\Rr                  \Rx                  /\$\#SD9=\SC'   r=\" SE\R@                  \Rp                  \R|                  \RB                  /\+SFSG9=\SE'   r?\" SH\Rx                  \Rr                  /\%\&SI9=\SH'   r@\" SJ\R@                  \Rp                  /\.SK9=\SJ'   rA\" SL\R@                  \Rp                  /\-SK9=\SL'   rB\" SM\R@                  \Rp                  /\,SK9=\SM'   rC\" SN\R@                  \Rp                  /\*SOSP9=\SN'   rD\" SQ\Rr                  \RB                  /SR\(SS9=\SQ'   rE\" ST\Rx                  \Rr                  /\2\3SI9=\ST'   rF\" SU\Rx                  \Rr                  \RB                  /SV\4\5SW9=\SU'   rG\" SX\R@                  \Rr                  \RB                  /\6\" SYSZS[/S\9S]9=\SX'   rH\" S^\R@                  \Rr                  \RB                  /\6\" SYSZ/S\9S]9=\S^'   rI\" S_\R@                  \Rr                  \RB                  /\6\" SYS[/S\9S]9=\S_'   rJ\7\S`'   g)b    )annotationsN   )mesonlib)mlog   )DependencyExceptionDependencyMethods)BuiltinDependencySystemDependency)CMakeDependencyCMakeDependencyFactory)ConfigToolDependency)packages)DependencyFactoryfactory_methods)PkgConfigDependency)	OptionKey)Environment)DependencyGeneratorc           
     l   UR                  S5      nUc  SnUS;  a  [        SU S35      e/ n[        R                  U;   a4  US:X  a  SnOSnUR	                  [
        R                  " [        X`X$S	95        [        R                  U;   a*  UR	                  [
        R                  " [        S
XUS	95        U$ )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   )envfor_machinekwargsmethodsr   
candidatespkgs          }/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/dependencies/misc.pynetcdf_factoryr+      s    
 zz*%H..!IhZ7U"VWW02J""g-y "CC)++,?6ef'))++OXs]efg    r   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )AtomicBuiltinDependency8   c                   > [         TU ]  XU5        SU l        U R                  R	                  SSU5      S   (       a  SU l        g g )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selfnamer$   r&   	__class__s       r*   r5    AtomicBuiltinDependency.__init__9   sH    F+}**+>@XZ]^_`a DM br,   r6   r9   r<   strr$   r   r&   T.Dict[str, T.Any]__name__
__module____qualname____firstlineno__r5   __static_attributes____classcell__r=   s   @r*   r.   r.   8       ! !r,   r.   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )AtomicSystemDependencyA   c                  > [         TU ]  XU5        SU l        U R                  R	                  SSU5      nU R                  R                  SU/ U R                  5      U l        US   (       a  U R                  (       a  SU l        g g g )Nr1   zstdatomic.h atomicr   T	r4   r5   r6   r7   
has_headerfind_librarylibtype	link_argsr9   r;   r<   r$   r&   hr=   s        r*   r5   AtomicSystemDependency.__init__B   sq    F+}))-SA++883DLLYQ4DNN DM #4r,   r6   r9   rV   r@   rC   rJ   s   @r*   rM   rM   A       ! !r,   rM   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DlBuiltinDependencyM   c                   > [         TU ]  XU5        SU l        U R                  R	                  SSU5      S   (       a  SU l        g g )Nz0.62.0zDconsider checking for `dlopen` with and without `find_library('dl')`dlopenz#include <dlfcn.h>r   Tr3   r:   s       r*   r5   DlBuiltinDependency.__init__N   sF    F+o**85I3OPQR DM Sr,   r?   r<   rA   r$   'Environment'r&   rB   rC   rJ   s   @r*   r]   r]   M   rK   r,   r]   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DlSystemDependencyV   c                  > [         TU ]  XU5        SU l        U R                  R	                  SSU5      nU R                  R                  SU/ U R                  5      U l        US   (       a  U R                  (       a  SU l        g g g )Nr`   zdlfcn.hrP   dlr   TrR   rW   s        r*   r5   DlSystemDependency.__init__W   sq    F+o)))R=++88sBUQ4DNN DM #4r,   rZ   rc   rC   rJ   s   @r*   rf   rf   V   r[   r,   rf   c                  H   ^  \ rS rSrSSSSSSSS	S
SSS.rSU 4S jjrSrU =r$ )OpenMPDependencyb   z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199810c           	     P  > UR                  S5      n[        TU ]	  SXUS9  SU l        U R                  R                  5       S:X  a6  SU l        SU l        U R                  R                  U5      =U l        U l	        g U R                  R                  5       S:X  a6  SU l        SU l        U R                  R                  U5      =U l        U l	        g  U R                  R                  U R                  R                  U5      5        U R                  R                  U R                  R                  U5      5         U R                  R#                  SSU R$                  / U /SS9S   n U R*                  U   U l        SnU H<  nU R                  R/                  USU R$                  U /SS9S   (       d  M5  SU l          g    [        R                  " SSS
9  g ! [        R                   a)  n[        R                  " S	[!        U5      SS
9   S nAg S nAff = f! [        R&                   a6  n[        R(                  " S5        [        R(                  " U5         S nAg S nAff = f! [,         a8    [        R(                  " SU 35        US:X  a  [        R(                  " S5         g f = f)Nr   openmpr   Fnagforrn   Tpgiz%OpenMP support not available because:)fatal_OPENMPrP   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)dependenciesr   zOpenMP found but omp.h missing.)r   r4   r5   r9   r7   get_idversionopenmp_flagscompile_argsrV   extendopenmp_link_flagsr   MesonExceptionr   warningrA   
get_definer$   EnvironmentExceptiondebugVERSIONSKeyErrorrS   )	r;   environmentr&   r   eopenmp_dateheader_namesr<   r=   s	           r*   r5   OpenMPDependency.__init__r   s]   ::j);J$$&(2 DL DM151C1C1P1PQ\1]]D$$&%/ DL DM151C1C1P1PQ\1]]D	$$T%7%7%D%D[%QRNN!!$"4"4"F"F{"ST
	,,772txxdV4 8 IIJLK	==5DL . D!!,,T2txxtfdh,ijkll $ !
 LL:%H7 && 	LL@#a&PUV	 ,, 	JJEFJJqM	  	JJCK=QRi'

  A  B		sC   A(G ;,H (I# H*HHI *,II #?J%$J%)r   r9   rV   r   r   rd   r&   rB   returnNone)rD   rE   rF   rG   r   r5   rH   rI   rJ   s   @r*   rl   rl   b   s9     !H0I 0Ir,   rl   r{   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )ThreadDependency   c                   > [         TU ]  XU5        SU l        U R                  (       d  / U l        / U l        g U R                  R                  U5      U l        U R                  R                  U5      U l        g )NT)r4   r5   r9   r7   r   rV   thread_flagsthread_link_flagsr;   r<   r   r&   r=   s       r*   r5   ThreadDependency.__init__   sd    F3 !! "DDN $ 2 2 ? ? LD!//AA+NDNr,   )r   r9   rV   )r<   rA   r   rd   r&   rB   r   r   rC   rJ   s   @r*   r   r      s    
O 
Or,   r   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )BlocksDependency   c                  > [         TU ]  SX5        SU l        SU l        U R                  R
                  U R                     R                  5       (       a  / U l        / U l	        OS/U l        S/U l	        U R                  R                  SSUSS9(       a"  U R                  R                  S	U/ 5      (       d,  [        R                  " [        R                  " S
5      S5        g SnU R                  R!                  X0R                  U R                  -   S9 nUR"                  S:w  a5  [        R                  " [        R                  " S
5      S5         S S S 5        g SU l        S S S 5        g ! , (       d  f       g = f)NblocksFz-fblocksz-lBlocksRuntimezBlock.hrP   Tr   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.)r4   r5   r<   r9   r$   machinesr%   	is_darwinr   rV   r7   rS   rT   r   logredcompile
returncode)r;   r   r&   sourcepr=   s        r*   r5   BlocksDependency.__init__   s4   ;7	88T--.88:: "DDN!+D/0DN%%00B[_0`%%22?KQSTT(+-GH '';L;Lt~~;]'^bc||q (+-Z[ _^
 !DM _^^s   =E,E,,
E:)r   r9   rV   r<   r   rC   rJ   s   @r*   r   r      s    ! !r,   r   r   c                  D   ^  \ rS rSrS/rSrSrSU 4S jjrSS jrSr	U =r
$ )	PcapDependencyConfigTool   zpcap-configz--helpc                   > [         TU ]  XU5        U R                  (       d  g U R                  S/S5      U l        U R                  S/S5      U l        U R                  c  U R                  5       U l        g g N--cflagsr   --libsrV   )r4   r5   r9   get_config_valuer   rV   r   get_pcap_lib_versionr   s       r*   r5   !PcapDependencyConfigTool.__init__   sh    F3}} 11:,O..z;G<<446DL  r,   c                8   U R                   R                  R                  U R                  5      (       d  g U R                  R                  SSSU R                   / U /5      n[        R                  " SS[        U5      5      n[        R                  " SSU5      nU$ )Npcap_lib_versionstringz#include <pcap.h>zlibpcap version rP   z -- Apple version.*$)	r$   r   matches_build_machiner%   r7   get_return_valueresubrA   )r;   vs     r*   r   -PcapDependencyConfigTool.get_pcap_lib_version   s     xx  66t7G7GHH//0BH0CTXXrTXSY[FF&CF3FF*B2r,   r   rV   r   r<   rA   r   rd   r&   rB   )r   T.Optional[str])rD   rE   rF   rG   tools	tool_nameskip_versionr5   r   rH   rI   rJ   s   @r*   r   r      s%    OEI L7 r,   r   c                  6   ^  \ rS rSrS/rSrSU 4S jjrSrU =r$ )CupsDependencyConfigTool   zcups-configc                   > [         TU ]  XU5        U R                  (       d  g U R                  S/S5      U l        U R                  SS/S5      U l        g )Nr   r   	--ldflagsr   rV   r4   r5   r9   r   r   rV   r   s       r*   r5   !CupsDependencyConfigTool.__init__   sL    F3}} 11:,O..X/FTr,   r   rV   r   	rD   rE   rF   rG   r   r   r5   rH   rI   rJ   s   @r*   r   r      s    OEIU Ur,   r   c                  6   ^  \ rS rSrS/rSrSU 4S jjrSrU =r$ )LibWmfDependencyConfigTooli  zlibwmf-configc                   > [         TU ]  XU5        U R                  (       d  g U R                  S/S5      U l        U R                  S/S5      U l        g r   r   r   s       r*   r5   #LibWmfDependencyConfigTool.__init__  sI    F3}} 11:,O..z;Gr,   r   r   r   rJ   s   @r*   r   r     s    EIH Hr,   r   c                  6   ^  \ rS rSrS/rSrSU 4S jjrSrU =r$ )LibGCryptDependencyConfigTooli  zlibgcrypt-configc                   > [         TU ]  XU5        U R                  (       d  g U R                  S/S5      U l        U R                  S/S5      U l        U R                  S/S5      S   U l        g Nr   r   r   rV   z	--versionr   r   r4   r5   r9   r   r   rV   r   r   s       r*   r5   &LibGCryptDependencyConfigTool.__init__  d    F3}} 11:,O..z;G,,k]IFqIr,   r   r   r   rJ   s   @r*   r   r     s     E"IJ Jr,   r   c                  6   ^  \ rS rSrS/rSrSU 4S jjrSrU =r$ )GpgmeDependencyConfigTooli!  zgpgme-configz
gpg-configc                   > [         TU ]  XU5        U R                  (       d  g U R                  S/S5      U l        U R                  S/S5      U l        U R                  S/S5      S   U l        g r   r   r   s       r*   r5   "GpgmeDependencyConfigTool.__init__&  r   r,   r   r   r   rJ   s   @r*   r   r   !  s    EIJ Jr,   r   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )ShadercDependencyi/  c                  > [         TU ]  SX5        SnSnXC/nU R                  (       a  UR                  5         U R	                  5       nU Ho  nUR                  Xq/ 5      U l        U R                  c  M)  SU l        U R                  (       a.  Xs:w  a)  [        R                  " SU< SU R                  < S35          g    g )Nshadercshaderc_combinedshaderc_sharedTzStatic library z not found for dependency z, may not be statically linked)r4   r5   staticreverseget_compilerrT   rV   r9   r   r   r<   )	r;   r   r&   
static_lib
shared_liblibscclibr=   s	           r*   r5   ShadercDependency.__init__1  s    K8'
%
';;LLN C__SrBDN~~) $;;3#4LL?:.@Z$(II=0N"P Q  r,   )r9   rV   r   rd   r&   rB   rC   rJ   s   @r*   r   r   /  s     r,   r   c                  @   ^  \ rS rSrSrSr/ SQrSSU 4S jjjrSrU =r	$ )	CursesConfigToolDependencyiI  zUse the curses config tools.zcurses-config)zncursesw6-configzncursesw5-configzncurses6-configzncurses5-configzncurses5.4-configc                0  > S nUR                   R                  (       a'  UR                   R                  R                  S:X  a  S/n[        TU ]  XX4US9  U R
                  (       d  g U R                  S/S5      U l        U R                  S/S5      U l        g )Ndarwinz/usr/bin)exclude_pathsr   r   r   rV   )	r   buildsystemr4   r5   r9   r   r   rV   )r;   r<   r$   r&   r   r   r=   s         r*   r5   #CursesConfigToolDependency.__init__Q  s    
 <<#,,"4"4";";x"G'LMFMR}} 11:,O..z;Gr,   r   N)r<   rA   r$   rd   r&   rB   r   r   )
rD   rE   rF   rG   __doc__toolr   r5   rH   rI   rJ   s   @r*   r   r   I  s    &DoEH Hr,   r   c                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )CursesSystemDependencyi`  zCurses 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.
c           	     *  > [         TU ]  XU5        SS/4SSS/4S/ SQ4SS	/4/nU GH  u  pVU R                  R                  XR/ 5      nU(       Ga  U GH  nU R                  R	                  US
U5      n	U	S   (       d  M-  SU l        Xpl        UR                  S5      (       a<  U R                  R                  SSU S3U/ U /5      u  pU
R                  S5      U l
        UR                  S5      (       aX  U R                  R                  SSU S3U/ U /5      u  pU R                  R                  SSU S3U/ U /5      u  pU SU 3U l
        UR                  S5      nU(       aP  U R                  (       a)  [        R                  " U R                  U5      tU l        nO[        R                  " S5        U R
                  (       d  GMv  [        R                   " SU5        [        R                   " SU5          O   U R
                  (       d  GM    g    g )Npdcurseszpdcurses/curses.hncurseswzncursesw/ncurses.h	ncurses.hncurses)zncurses/ncurses.hzncurses/curses.hr  curseszcurses.hrP   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:)r4   r5   r7   rT   rS   r9   rV   
startswithr   stripr   r   r   version_compare_manyr   r   r   )r;   r<   r$   r&   r(   r   headerslheaderrX   r   _v_majorv_minorreqr=   s                  r*   r5   CursesSystemDependency.__init__i  s   F+ -.//=>OP%	

 'LC""//"=A%F**55fb#FAtt(,)* >>)44#'#5#5#@#@ARV`ag`hhiTjloqsvzu{#|DA+,773<DL>>*55)-););)F)FZdekdllmXnpsuwz~y  *AJG)-););)F)FZdekdllmXnpsuwz~y  *AJG.5Yay+ADL %jj3#||4<4Q4QRVR^R^`c4d 1 $-e f=== JJ'8!< JJ'7@!7 &8 }}}A 'r,   r9   rV   r   rc   )rD   rE   rF   rG   r   r5   rH   rI   rJ   s   @r*   r   r   `  s    + +r,   r   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )IconvBuiltinDependencyi  c                   > [         TU ]  XU5        SU l        SnU R                  R	                  XB5      S   (       a  SU l        g g )N)0.60.0zKconsider checking for `iconv_open` with and without `find_library('iconv')`z9#include <iconv.h>

int main() {
    iconv_open("","");
}r   Tr4   r5   r6   r7   linksr9   r;   r<   r$   r&   coder=   s        r*   r5   IconvBuiltinDependency.__init__  sD    F+vR##D.q1 DM 2r,   r?   rc   rC   rJ   s   @r*   r  r        ! !r,   r  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )IconvSystemDependencyi  c                  > [         TU ]  XU5        SU l        U R                  R	                  SSU5      nU R                  R                  SU/ U R                  5      U l        US   (       a  U R                  (       a  SU l        g g g )N)r  zIconsider checking for `iconv_open` with and without find_library('iconv')ziconv.hrP   iconvr   TrR   rW   s        r*   r5   IconvSystemDependency.__init__  sq    F+t)))R=++88#r4<<XQ4DNN DM #4r,   rZ   rc   rC   rJ   s   @r*   r!  r!    r[   r,   r!  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )IntlBuiltinDependencyi  c                   > [         TU ]  XU5        SU l        SnU R                  R	                  XB5      S   (       a  SU l        g g )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        r*   r5   IntlBuiltinDependency.__init__  sD    F+sY##D.q1 DM 2r,   r?   rc   rC   rJ   s   @r*   r&  r&    r  r,   r&  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )IntlSystemDependencyi  c                  > [         TU ]  XU5        SU l        U R                  R	                  SSU5      nU R                  R                  SU/ U R                  5      U l        US   (       a`  U R                  (       aN  SU l        U R                  (       a5  U R                  [        X R                  SS05      5      (       d  SU l        g g g g g )	Nr(  z	libintl.hrP   intlr   Tr   F)r4   r5   r6   r7   rS   rT   rU   rV   r9   r   _add_sub_dependencyiconv_factoryr%   rW   s        r*   r5   IntlSystemDependency.__init__  s    F+s))+r3?++88b$,,WQ4DNN DM{{//cCSCSV^`dUe0fgg$)DM h  #4r,   rZ   rc   rC   rJ   s   @r*   r+  r+    s    * *r,   r+  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )OpensslSystemDependencyi  c                  > [         T
U ]  XU5        SU R                  S.nU R                  R	                  SSU5      S   (       d  g U R                  R                  SSU/ U /5      S   U l        U R                  (       d  U R                  R                  SSU/ U /5      S   nU(       d  g UR                  S	5      nS
 Vs/ s H'  n[        UR                  S	5      S5      SU-   -	  S-  PM)     nnSR                  S US S  5       5      [        [        S5      US   -   S-
  5      -   U l        US:X  a\  U R                  [        X R                  U5      5      (       a1  U R                  [        X R                  U5      5      (       a  SU l        g U R                  R#                  UR%                  S5      U/ U R&                  5      U l        U R(                  (       d  g U R                  (       d  SU l        g US:X  a3  U R                  [        X R                  U5      5      (       a  SU l        g g US:X  a  U R                  R+                  SSSX /S9S   nU(       a*  U R                  [-        X R                  0 5      5      (       a  SU l        U R                  R#                  SU/ U R&                  5      n	U	(       a  U R(                  R/                  U	5        g g g s  snf )Nr   )methodr   zopenssl/ssl.hrP   r   OPENSSL_VERSION_STRz#include <openssl/opensslv.h>OPENSSL_VERSION_NUMBERL)         r   r9        r	  c              3  8   #    U  H  n[        U5      v   M     g 7fr   )rA   ).0is     r*   	<genexpr>3OpensslSystemDependency.__init__.<locals>.<genexpr>  s     #E4DqCFF4Ds      ar   opensslTr   libssl	libcryptozopenssl/opensslconf.hOPENSSL_THREADS)r   ri   )r4   r5   r   r7   rS   r   r   rstripintjoinchrordr.  libssl_factoryr%   libcrypto_factoryr9   rT   lstriprU   rV   has_header_symbolthreads_factoryr   )r;   r<   r$   r&   dependency_kwargsversion_hexr?  version_intsuse_threadssublibr=   s             r*   r5    OpensslSystemDependency.__init__  s   F+ kk
 !!,,_b#FqI ))445JLkmprtw{v|}~  A||,,778PRqsvxz  ~B  }C  D  EF  GK%,,S1KZhiZhUVc+"4"4S"92>!a%G4OZhLi88#EL!4D#EECPSHWcdeWfLfijLjHkkDL9''s<L<LN_(`aa,,->sDTDTVg-hii $!//<<T[[=OQTVXZ^ZfZfgDN>>{{ DMx++,=cCSCSUf,ghh$(DM i$"00BBCZ\moqsv  FLB  M  NO  P"d&>&>sTdTdfh?i&j&j$(DM++88sBUNN))&1  %) js    .Kr  rc   rC   rJ   s   @r*   r2  r2    s    -2 -2r,   r2  c                  6   ^  \ rS rSrS/rSrSU 4S jjrSrU =r$ )ObjFWDependencyi  zobjfw-configc                t  > [         TU ]  SX5        SU l        U R                  (       d  g / n[        R
                  " [        R                  " US5      5       H%  nUR                  S5        UR                  U5        M'     U R                  / SQU-   S5      U l	        U R                  SS/U-   S	5      U l
        g )
Nobjfw)z1.5.0rP   modulesz	--package)z
--cppflagsr   z--objcflagsr   r   r   rV   )r4   r5   r6   r9   r   stringlistifyextract_as_listr    r   r   rV   )r;   r   r&   extra_flagsmoduler=   s        r*   r5   ObjFWDependency.__init__  s    +6*}} ,,X-E-Efi-XYF{+v& Z
 !112[^i2ikyz..X/F/TVabr,   )r   r6   rV   r   r   rJ   s   @r*   rY  rY    s    EIc cr,   rY  c           	        / n[         R                  U;   a8  / SQnU H.  nUR                  [        R                  " [
        X`U5      5        M0     U R                  U   R                  5       (       d~  [         R                  U;   a+  UR                  [        R                  " [        SX5      5        [         R                  U;   a+  UR                  [        R                  " [        SX5      5        U$ )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          r*   curses_factoryrg    s    
 13J""g-G"Ci//0CSvVW # <<$//11((G3i//0JHVYbc##w.i//0FRU^_r,   r  c           	     2   / n[         R                  U;   a  S/nSS/nUR                  SU R                  R                  R                  [        S5      5      5      (       a/  Xe-    Vs/ s H  n[        R                  " [        XpU5      PM!     nnO.XV-    Vs/ s H  n[        R                  " [        XpU5      PM!     nnUR                  U5        [         R                  U;   a*  UR                  [        R                  " [        X5      5        U$ s  snf s  snf )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_static)r	   r   r   coredataoptstoreget_value_forr   r!   r"   r   r   re  r    r   )	r$   r%   r&   r'   r(   shared_libsstatic_libsr<   r   s	            r*   shaderc_factoryrp  *  s    13J""g-
 !k)+;<::h 5 5 C CIoD^ _``(686T ""#66J6  8A )686T ""#66J6  8!7*)++,=sKL88s   '&D&Dr   rQ   )system_classbuiltin_classcupsCups)configtool_class
cmake_nameri   )rr  rq  gpgme)ru  	libgcryptlibwmfpcaplibpcap)ru  pkgconfig_namethreadsThreads)rv  rq  r#  r-  Intl)rv  rr  rq  rD  OpenSSLzOpenSSL::CryptozOpenSSL::SSL)r\  )rq  cmake_classrF  rE  r[  )
r$   rd   r%   z'mesonlib.MachineChoice'r&   rB   r'   zT.List[DependencyMethods]r   zT.List['DependencyGenerator'])K
__future__r   r!   r   typingTrP   r   r   baser   r	   r
   r   cmaker   r   
configtoolr   detectr   factoryr   r   	pkgconfigr   optionsr   TYPE_CHECKINGr   r   r   r   r#   r+   r.   rM   r]   rf   rl   r   r   r   r   r   r   r   r   r   r   r  r!  r&  r+  r2  rY  rd  re  rg  rp  BUILTINatomic_factoryEXTRAFRAMEWORKcups_factory
dl_factorygpgme_factorylibgcrypt_factorylibwmf_factorypcap_factoryrQ  r/  intl_factoryopenssl_factoryrN  rM   r,   r*   <module>r     s  
 #  	    8 5 : ,  7 * ??), #--/@/F/FGH 8- 6 ;X I2 $ !/ !	!- 	!!+ !	!) 	!@I' @ID & O' O!' !@ & 3 B
U3 
U
H!5 
HJ$8 JJ 4 J( 4H!5 H.4- 4n!. !	!, 	!!- !*+ * .2. .2bc* c0 #--/@/L/LN_NfNfgh 8- 6 ;X i, $  #--/@/G/GHI!9. 7 <Y J@ &  '80889')	'  ^ #4
  "3"?"?ARAaAactczcz{-	#  < 0 1 8 89%#	  %6  "3"?"?@.%  M ->  "3"?"?@2-  ) '8  "3"?"?@/'  ^ #4
  "3"?"?@-	#  < ):0667!	)  o %6 1 8 89(&	%  M #4
 1 8 8:K:Q:QR'%#  < ):  "3":":<M<S<ST(&y;Ln:]^	)  o ->  "3":":<M<S<ST(&y;L:MN	-  ) '8  "3":":<M<S<ST(&y>:JK	'  ^ $ r,   