
    -Phw                    \   d dl mZ ddlmZmZmZ ddlmZmZm	Z	m
Z
mZ ddlmZmZmZmZmZmZmZmZ ddlmZ d dlZd d	lmZ d dlZd dl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!j*                  Z+ G d de          Z, G d d          Z-ddZ.dS )    )annotations   )ExternalDependencyDependencyExceptionDependencyTypeName   )
is_windowsMesonException
PerMachinestringlistifyextract_as_list)CMakeExecutorCMakeTraceParserCMakeExceptionCMakeToolchainCMakeExecScopecheck_cmake_argsresolve_cmake_trace_targetscmake_is_debug)mlogNPath)CMakeTarget)Environment)MachineInfo)PkgConfigDefineTypec                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )	CMakeInfoT.List[str]module_pathsstr
cmake_rootarchscommon_pathsN)__name__
__module____qualname____annotations__     ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/dependencies/cmake.pyr   r      s?         OOOr*   r   c                      e Zd ZU  edd          Zded<   dZg dZdZded<   dGdZ	dHdZ
dIdZdJdZdJdZdKdZdLdM fd!ZdHd"ZdNd%Ze ej        d&          dOd)                        Ze ej        d&          dPd*                        ZdQd/ZdRd2ZdSd4ZdTd6Z	 dUdVd:ZedHd;            ZdHd<Zdddddddd=dWdFZ xZS )XCMakeDependencyNz!PerMachine[T.Optional[CMakeInfo]]class_cmakeinfoz>=3.4) NinjazUnix MakefileszVisual Studio 10 2010T.Optional[str]class_working_generatormsgr!   returnr   c                6    t          d| j         d|           S )NzDependency z not found: )r   name)selfr3   s     r+   _gen_exceptionzCMakeDependency._gen_exception)   s#    "#M#M#M#M#MNNNr*   c                    dS )NCMakeLists.txtr)   r7   s    r+   _main_cmake_filez CMakeDependency._main_cmake_file,   s    r*   r   c                    g S Nr)   r;   s    r+   _extra_cmake_optsz!CMakeDependency._extra_cmake_opts/   s    	r*   modulesT.List[T.Tuple[str, bool]]
componentsc                    |S r>   r)   r7   r@   rB   s      r+   _map_module_listz CMakeDependency._map_module_list2   s	     r*   c                    |S r>   r)   rD   s      r+   _map_component_listz#CMakeDependency._map_component_list;   s
     r*   modulec                    |S r>   r)   )r7   rH   s     r+   _original_module_namez%CMakeDependency._original_module_nameC   s	     r*   Fr6   environment'Environment'kwargsT.Dict[str, T.Any]languageforce_use_global_compilersboolNonec                   g | _         ||r\d |                    dd          rj        j        j        nj        j        j        g d}| xj         fd|D             z  c_         n| xj         |gz  c_         d| j         v r| xj         dgz  c_         t          t          | j                             | _         t                      	                    t          d          ||           || _        d| _        j        | _        g | _        t!          t"          j        | j        | j        	          | _        | j                                        s7d
| j         d}| j        rt1          |          t3          j        |           d S t7          | j                                        |                                 | j                  | _        tA          tC          |d                    }tE          |          }t"          j#        | j                 '| $                    |          t"          j#        | j        <   t"          j#        | j                 }	|	| %                    d          |	| _&        |                    dd          }
tO          |
tP                    st1          d          d tA          tC          |d                    D             }d tA          tC          |d                    D             }|d tA          tC          |d                    D             z  }tA          tC          |d                    }fd|D             }|r+|)                    dd*                    |          z              | +                    ||| j        ,                                j-        | j                           st3          j        d           d S | .                    ||
|||           d S )NnativeF)ccppfortranobjcobjcxxc                    g | ]}|v |	S r)   r)   ).0x	compilerss     r+   
<listcomp>z,CMakeDependency.__init__.<locals>.<listcomp>S   s    "K"K"KANN1NNNr*   rW   rU   cmake)rO   )silentzCMake binary for machine z not found. Giving up.
cmake_argsz)Unable to obtain CMake system informationcmake_package_versionr/   z1Keyword "cmake_package_version" must be a string.c                    g | ]}|d fS Tr)   r[   r\   s     r+   r^   z,CMakeDependency.__init__.<locals>.<listcomp>   s    ^^^Aq$i^^^r*   rB   c                    g | ]}|d fS rd   r)   re   s     r+   r^   z,CMakeDependency.__init__.<locals>.<listcomp>   s    XXXAt9XXXr*   r@   c                    g | ]}|d fS )Fr)   re   s     r+   r^   z,CMakeDependency.__init__.<locals>.<listcomp>   s    ccc1QJcccr*   optional_modulescmake_module_pathc                    g | ]U}t           j                            |          r|n1t           j                                                            |          VS r)   )ospathisabsjoinget_source_dir)r[   r\   rK   s     r+   r^   z,CMakeDependency.__init__.<locals>.<listcomp>   sN    mmm`aa(([11bgll;;U;U;W;WYZ.[.[mmmr*   z-DCMAKE_MODULE_PATH=;z)Preliminary CMake check failed. Aborting.)/language_listgetcoredatar]   buildhostlistsetsuper__init__r   r6   
is_libtoolscratch_dircmake_root_dirfound_modulesr   r-   class_cmake_versionfor_machiner`   cmakebinfoundrequiredr   r   debugr   version_get_build_direnvtraceparserr   r   r   r.   _get_cmake_infor8   	cmakeinfo
isinstancer!   appendrn   _preliminary_find_checkget_cmake_prefix_pathsmachines_detect_dep)r7   r6   rK   rM   rO   rP   
candidatesr3   cm_argsr   package_versionrB   r@   cm_pathr]   	__class__s     `           @r+   ry   zCMakeDependency.__init__H   s   *,9Izz(E** @'0:@		'0:?	BBBJ"K"K"K"Kj"K"K"KK8*, ***3%' "#d&8"9"9::+G44k6T\]]]	 *5 +- &k?3VX\Xhquq|}}}}""$$ 	Vd.>VVVC} /)#...JsOOOF ,DM,A,A,C,CTEXEXEZEZ\`\dee E EFF"7++*4+;<D@D@T@TU\@]@]O+D,<=#3D4DE	%%&QRRR" **%<bAA/3// 	[%&YZZZ^^v|7\7\)])]^^^
XXmOFI4V4V&W&WXXXccofN`6a6a(b(bcccc8K L LMMmmmmelmmm 	GNN1CHHW4E4EEFFF++D'4=;_;_;a;acncwx|  yI  dJ  K  K 	JBCCCFWMMMMMr*   c           	     R    d| j         j         d| j         d| j         d| j         d	S )N< z: >)r   r%   r6   is_foundversion_reqsr;   s    r+   __repr__zCMakeDependency.__repr__   s7    ^4>*^^TY^^$-^^$J[^^^^r*   r   T.Optional[CMakeInfo]c           
        t          j        d           g }t          j        |t          j        gz  }|t          j        z  }t          | j                                        |                                 | j	                  }t          | j        | j	        | j        t          j        |                                           }|                                 |D ]}t          j        d                    t!          |          dk    r|nd                     |                                |                                z   dgz   }||z  }t!          |          dk    rd|g|z   }|                     |d          \  }}}	|dk    r|t          _         n6t          j        d| d	|            t          j        d
| d|	 d           |dk    rd S 	 |                    |	           n# t*          $ r Y d S w xY wd"d}
 |
|                    d                    }|                     |
|                    d                               t1          |          }d |D             } |
|                    d                    }g }d |D             D ]N}d |D             D ]?}|                    t5          ||                    |j                  z                       @Ot1          |                    |                    }d |D             }|                    d          }g d}|D ]&}|t<          j                             d|          gz  }'tC          ||                    d          d         ||          }t          j        d|j"                    t          j        d|j#                    t          j        d |j$                    t          j        d!|j%                    |S )#Nz"Extracting basic cmake informationTry CMake generator: {}r   auto.-GzCMakePathInfo.txtz8CMake failed to gather system information for generator  with error code OUT:



ERR:


lr   r4   
T.Set[str]c                    t                      rd | D             }nd | D             }d |D             }t          |          S )Nc                L    g | ]!}|                     t          j                  "S r)   )splitrk   pathsepre   s     r+   r^   zJCMakeDependency._get_cmake_info.<locals>.process_paths.<locals>.<listcomp>   s&    666qqwwrz**666r*   c                8    g | ]}t          j        d |          S )z:|;)rer   re   s     r+   r^   zJCMakeDependency._get_cmake_info.<locals>.process_paths.<locals>.<listcomp>   s$    666qrx**666r*   c                    g | ]	}|D ]}|
S r)   r)   )r[   sublistr\   s      r+   r^   zJCMakeDependency._get_cmake_info.<locals>.process_paths.<locals>.<listcomp>   s%    ???ww??!????r*   )r	   rw   )r   tmp	flatteneds      r+   process_pathsz6CMakeDependency._get_cmake_info.<locals>.process_paths   sW    || 766A666 76A666??#???Iy>>!r*   MESON_FIND_ROOT_PATHMESON_CMAKE_SYSROOTc                P    g | ]#}t           j                            |          !|$S r)   rk   rl   isdirre   s     r+   r^   z3CMakeDependency._get_cmake_info.<locals>.<listcomp>   s+    @@@Arw}}Q/?/?@a@@@r*   MESON_PATHS_LISTc                ,    g | ]}t          |          S r)   r   re   s     r+   r^   z3CMakeDependency._get_cmake_info.<locals>.<listcomp>   s    ...a$q''...r*   c                ,    g | ]}t          |          S r)   r   re   s     r+   r^   z3CMakeDependency._get_cmake_info.<locals>.<listcomp>   s    888!d1gg888r*   c                P    g | ]#}t           j                            |          !|$S r)   r   re   s     r+   r^   z3CMakeDependency._get_cmake_info.<locals>.<listcomp>   s+    DDDa27==3C3CDDDDr*   MESON_ARCH_LIST)liblib32lib64libx32sharer/   r   MESON_CMAKE_ROOT)r    r"   r#   r$   z  -- Module search paths:    z  -- CMake root:             z  -- CMake architectures:    z  -- CMake lib search paths: )r   r   r4   r   )&r   r   r-   r2   class_cmake_generatorsr   r   r   r   r   r   r   r   
DEPENDENCYwriteformatlen
trace_argsget_cmake_args_call_cmakeparser
   get_cmake_varupdatesortedr   r!   relative_toanchorunionrk   rl   rn   r   r    r"   r#   r$   )r7   r   gen_listtemp_parser	toolchaini
cmake_optsret1out1err1r   root_paths_set
root_pathsmodule_paths_setrooted_pathsjpr    r#   r$   ress                        r+   r   zCMakeDependency._get_cmake_info   sO   
7888 2>@AAHO::&t}'<'<'>'>@S@S@U@UW[W_``"4=$(D<LnNgimi|i|i~i~	 	> 	>AJ077SVVaZZVTTUUU %//11I4L4L4N4NNRUQVVJ'!J1vvzz"AY3
  $//
<OPPD$ qyy:;7JlRSllfjllmmmJ<<<$<<<==== 1994	d#### 	 	 	44		" 	" 	" 	" '{'@'@AW'X'XYYmmK,E,EF[,\,\]]^^^N++
@@@@@
(=)B)BCU)V)VWW$&..:... 	F 	FA88'7888 F F##CAMM!(,C,C(C$D$DEEEEF.44\BBCCDD<DDD))*;<<GGG 	5 	5ARW\\%3344LL%"001CDDQG%	
 
 
 	
E33CEEFFF
C3>CCDDD
>39>>???
E33CEEFFF
s   G" "
G0/G0)maxsizerl   T.Tuple[T.Tuple[str, str], ...]c                    	 t          d t          j        |           D                       S # t          $ r t                      cY S w xY w)Nc              3  \   K   | ]'}|t          |                                          fV  (d S r>   )r!   lowerre   s     r+   	<genexpr>z2CMakeDependency._cached_listdir.<locals>.<genexpr>   s5      GG!SVV\\^^,GGGGGGr*   )tuplerk   listdirOSErrorrl   s    r+   _cached_listdirzCMakeDependency._cached_listdir   sV    	GGbj6F6FGGGGGG 	 	 	77NNN	s   *- AAc                d    	 t           j                            |           S # t          $ r Y dS w xY wNF)rk   rl   r   r   r   s    r+   _cached_isdirzCMakeDependency._cached_isdir   s=    	7==&&& 	 	 	55	s   ! 
//module_pathprefix_pathmachine'MachineInfo'c           
         t                                                    d fdd fd}|t          j                             j        j        d          gz   D ]} |          r dS |D ]} ||          r dS g }t          j                            d	d
          	                    t          j
                  D ]p}|                    d          s|                    d          r
|d d         }|                    d          s|                    d          r
|d d         }||gz  }q j        j        |z   D ]} |          r dS  ||          r dS                      |          }t          fd|D                       }|D ]5}	 |t          j                            ||	d                             r  dS 6|                                r d dfD ]y}
|D ]t}	|	d         |
k    r t          j                            ||	d         d                    s0 t          j                            ||	d         d                    r   dS uz!t          j                             d          }|r |          rdS t!          j                    dz  dz  }|z  |z  fD ]}|                                r dS dS )Nrl   r!   r4   rQ   c                H   | t           j                            | d          t           j                            | d          fD ]]}                    |          s                    |          }g dfdD             t          fd|D                       r dS ^dS )Nr_   CMake)zFind{}.cmakez{}Config.cmakez{}-config.cmakec                ^    g | ])}|                                                               *S r)   )r   r   )r[   r\   r6   s     r+   r^   zPCMakeDependency._preliminary_find_check.<locals>.find_module.<locals>.<listcomp>  s/    IIIahhtnn2244IIIr*   c              3  ,   K   | ]}|d          v V  dS r   Nr)   )r[   r\   r   s     r+   r   zOCMakeDependency._preliminary_find_check.<locals>.find_module.<locals>.<genexpr>  s,      ;;aqtz);;;;;;r*   TF)rk   rl   rn   r   r   any)rl   r   contentr   r6   r7   s      @r+   find_modulez<CMakeDependency._preliminary_find_check.<locals>.find_module   s    BGLLw77dG9T9TU 	  	 ))!,,  ..q11RRR
IIIIjIII
;;;;7;;;;;  44 5r*   c           	     z     fdj         j        D             D ]}                    |          st          j                            |d          }                    |          rh                    |          }t          fd|D                       }|D ]5} t          j                            ||d                             r  dS 6                    |          }t          fd|D                       }|D ]5} t          j                            ||d                             r  dS 6 dS )Nc                P    g | ]"}t           j                            |          #S r)   )rk   rl   rn   )r[   r\   rl   s     r+   r^   zTCMakeDependency._preliminary_find_check.<locals>.search_lib_dirs.<locals>.<listcomp>  s)    QQQbgll4++QQQr*   r_   c              3  R   K   | ]!}|d                                         |V  "dS r   
startswithr[   r\   lnames     r+   r   zSCMakeDependency._preliminary_find_check.<locals>.search_lib_dirs.<locals>.<genexpr>  s8      #Q#Q!!A$//%:P:P#QA#Q#Q#Q#Q#Q#Qr*   r   Tc              3  R   K   | ]!}|d                                         |V  "dS r   r   r  s     r+   r   zSCMakeDependency._preliminary_find_check.<locals>.search_lib_dirs.<locals>.<genexpr>  s8      MMaadooe6L6LMMMMMMMr*   F)r   r$   r   rk   rl   rn   r   r   )rl   r   cm_dirr   kr   r  r7   s   `    r+   search_lib_dirsz@CMakeDependency._preliminary_find_check.<locals>.search_lib_dirs
  sp   QQQQT^5PQQQ $ $))!,,  a11%%f-- ("226::G##Q#Q#Q#Qw#Q#Q#QQQG$ ( (&;rw||FAaD'A'ABB (#'444(
 ..q11MMMM7MMMMM  $ $A"{27<<1Q4#8#899 $#ttt$$ 5r*   ModulesTPATHr/   z/binz\binz/sbinz\sbinc              3  R   K   | ]!}|d                                         |V  "dS r   r   r  s     r+   r   z:CMakeDependency._preliminary_find_check.<locals>.<genexpr>>  s8      II!!A$//%2H2HIAIIIIIIr*   r   z
.frameworkz.appr   	ResourcesVersion_DIRz.cmakepackagesFrl   r!   r4   rQ   )r!   r   rk   rl   rn   r   r"   environrr   r   r   endswithr    r   r   	is_darwinr   homeexists)r7   r6   r   r   r   r  r   
system_envr   r  r   env_path	linux_regr   r   r  s   ``            @@r+   r   z'CMakeDependency._preliminary_find_check   s   D		!!	 	 	 	 	 	 		 	 	 	 	 	 	 	2 T^-F	 R RSS 	 	A{1~~ tt  	 	Aq!! tt #%
++11"*== 	 	Azz&!! QZZ%8%8 crcFzz'"" ajj&:&: crcF1#JJ ,z9 	( 	(A{1~~ ttq!! tt**1--GIIIIwIIIIIG    "?27<<1Q4#8#899  444    "" ("...5? ( (A$ ( (Q4199$&;rw||Aqt['I'IJJ (kkZ\ZaZfZfghjklmjnpyZzZzN{N{ (#'4444(( :>>T---00 	H-- 	4 IKK(*Z7	d"I$56 	 	Axxzz tt ur*   r   argsc                   t          j        d                    | j                                                             g }t
          j        |t
          j        gz  }|t
          j        z  }|                     ||          }t          | j        | j
        | j        t          j        |                                           }|                                 |D ]}	t          j        d                    t!          |	          dk    r|	nd                     g }
|
d gz  }
|
d                    d                    | j        j                            gz  }
|
d| gz  }
|
d	                    d                    d
 |D                                 gz  }
|
d                    | j        rdnd          gz  }
|
|z  }
|
| j                                        z  }
|
|                                z  }
|
|                                 z  }
|
dgz  }
t!          |	          dk    rd|	g|
z   }
|                     |
|                                           \  }}}|dk    r|	t
          _         n:t          j        d|	 d d|            t          j        d| d| d           |dk    rd S 	 | j                            |           n^# t8          $ rQ}|                     t=          |                    }| j        r g | _         g | _!        d| _"        || _#        Y d }~d S d }~ww xY w| j        $                    d          | _"        | j"        s| j        %                    d          }t!          |          dk    r1t          j&        d                    |d                   d           n't          j        d                                         |                     d          | j        %                    d          }t!          |          dk    r'|d         | _'        | j'        (                    d           | )                    ||          }d}t!          |          dk    r}| j        j*        D ]p}	|	+                                }+                                }| d| |k    s||,                    dd           k    r!t          j        d!|	 d"           |	d#fg}d#} nqt!          |          dk    rg }| j        j*        -                                D ]K\  }}|+                                }+                                }|.                    | d          r||gz  }L|rmt          j/        ta          j1        d$ d%d& |D              d' d( d) d*                     t          j        d+           |D ]}t          j        |           d, | j        %                    d-          D             }d. | j        %                    d/          D             }d0 | j        %                    d1          D             }g }d#}te          | j
                  }|| d#d2}|D ]=}	|	+                                |v r||	+                                         }3|r||	gz  }d#}>t!          |          dk    rd3 |D             |z   | _         g | _!        |D ]m} tg          | | j        | j
        | j4        4          }!| xj!        |!j5        z  c_!        | xj         d5 |!j6        D             z  c_         | xj         |!j7        z  c_         nt          j        d6            t          j        d7|            t          j        d8|            t          j        d9|            d S d| _"        |                     d:                    tq          | j        j*        9                                                              g }g }"g }#|D ]+\  }	}$|	| j        j*        vr|$sPt          j/        d;t          j:        | ;                    |	                    d<t          j:                  d=           f|                     d>                    | ;                    |	          tq          | j        j*        9                                                              |s| xj<        |	gz  c_<        tg          |	| j        | j
        | j4        fd?@          }!||!j6        z  }|"|!j7        z  }"|#|!j5        |!j=        z   z  }#-t}          t          |                    }t}          t          |"                    }"t          |#          }#t          j        d7|            t          j        dA|"            t          j        d9|#            |"dB |D             z   | _         |#| _!        d S )CNz7
Determining dependency {!r} with CMake executable {!r}r   r   r   z-DNAME=z
-DARCHS={}rp   z
-DVERSION=z
-DCOMPS={}c                    g | ]
}|d          S )r   r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>x  s    8S8S8S!18S8S8Sr*   z-DSTATIC={}ONOFFr   r   zCMake failed for generator z and package r   r   r   r   FPACKAGE_FOUNDPACKAGE_NOT_FOUND_MESSAGEzNCMake reported that the package {} was not found with the following reason:
{})fatalzbCMake reported that the package {} was not found, even though Meson's preliminary check succeeded.zPACKAGE_FOUND is falsePACKAGE_VERSIONz"' z::r/   zGuessed CMake target ''TzL                    Could not find and exact match for the CMake dependency zd.

                    However, Meson found the following partial matches:

                        c                    g | ]	}|j         
S r)   )r6   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    :::Q!&:::r*   a  

                    Using imported is recommended, since this approach is less error prone
                    and better supported by Meson. Consider explicitly specifying one of
                    these in the dependency call with:

                        dependency('z', modules: ['zS::<name>', ...])

                    Meson will now continue to use the old-style z_LIBRARIES CMake
                    variables to extract the dependency information since no explicit
                    target is currently specified.

                z(More info for the partial match targets:c                    g | ]}||S r)   r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    ^^^Q\]^q^^^r*   PACKAGE_INCLUDE_DIRSc                    g | ]}||S r)   r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    ZZZ!XYZAZZZr*   PACKAGE_DEFINITIONSc                    g | ]}||S r)   r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    \\\aZ[\\\\r*   PACKAGE_LIBRARIES)r   	optimizedgeneralc                    g | ]}d | S z-Ir)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    $?$?$?!X!XX$?$?$?r*   )clib_compilerc                    g | ]}d | S r-  r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>  s    )U)U)Uq(q(()U)U)Ur*   z/using old-style CMake variables for dependency zInclude Dirs:         zCompiler Definitions: zLibraries:            zCMake: failed to guess a CMake target for {}.
Try to explicitly specify one or more targets with the "modules" property.
Valid targets are:
{}zCMake: Optional moduleforwas not foundzCMake: invalid module {} for {}.
Try to explicitly specify one or more targets with the "modules" property.
Valid targets are:
{}c                |    t          j        dt          j        |           dt          j                  d          S )NzCMake: Dependencyr0  r1  )r   warningbold)r\   r6   s    r+   <lambda>z-CMakeDependency._detect_dep.<locals>.<lambda>$  sD    37<@SUYU^_`UaUachjnjstxjyjy  |K  4L  4L r*   )r.  not_found_warningzCompiler Options:     c                    g | ]}d | S r-  r)   re   s     r+   r^   z/CMakeDependency._detect_dep.<locals>.<listcomp>4  s    -H-H-H1h1hh-H-H-Hr*   )Ar   r   r   r   executable_pathr-   r2   r   rG   r   r   r   r   r   r   r   r   rn   r   r#   staticr   r   r   r?   r   r<   r   r   r8   r!   r   compile_args	link_argsr   reasonvar_to_boolr   noticer   striprE   targetsr   replaceitemsr   r3  textwrapdedentr   r   r.  	librariesinclude_directoriespublic_compile_optsrv   keysr4  rJ   r}   
link_flagsr   rw   sort_link_args)%r7   r6   r   r@   rB   r  r   comp_mappedr   r   r   r   r   r   ee2not_found_messagevers_rawautodetected_module_listtgr  partial_modulesr  vtgtincDirsdefslibs_rawlibscfg_matchesis_debug
cm_tag_mapr   rtgtcompileOptionsrE  r   s%    `                                   r+   r   zCMakeDependency._detect_depY  s1    	
  &t}'D'D'F'FGG	I 	I 	I
 2>@AAHO:: ..w
CC"4=$(D<LnNgimi|i|i~i~	 	> 	>AJ077SVVaZZVTTUUU J+T++,,J<..sxx8L/M/MNNOOJ999::J<..sxx8S8S{8S8S8S/T/TUUVVJ=//0NOOPPJ$J$*55777J)22444J$00222J3%J1vvzz"AY3
  $//
D<Q<Q<S<STTD$ qyy:;7JbQbbTbb\`bbcccJ<<<$<<<==== 199F	""4(((( 		 		 		$$SVV,,B} $&!!# % 		 (44_EE} 
	@ $ 0 > >?Z [ [$%%))&7&:;;5J J J J J 
HHNtV V V %%&>??? #112CDDx==1#A;DLLv&&& ''<<#(  w<<1%-  WWYY

&&u&&",,D"9M9M0M0MJ>>>>??? !4ykG/3,E	 1N w<<135O(06688 + +1WWYY

==E.. +#s*O $X_ .MQ. .
 ;:/:::. . &*. . :>. . CG. . .     $ 
EFFF* $ $CJsOOOO^^$"2"@"@AW"X"X^^^GZZt/==>STTZZZD\\4#3#A#ABU#V#V\\\H !#DK%dh//H#+h,SWXXJ 	# 	#7799
**",QWWYY"7K  QCKD # 4yy1}}$?$?w$?$?$?$$F!!# B BA6q$:JDHdhdvwwwDNNdn4NN%%)U)UD<T)U)U)UU%%%%)AA%%%
STSSTTT
=G==>>>
:D::;;;
:D::;;; "DM%% '??EvdDQUQaQiQnQnQpQpLqLq?r?rt t t 	" 	: 	:KAx(000 L!949TE_E_`aEbEb;c;cejlpluvzl{l{  ~M  N  N  N)) +CCI6$JdJdefJgJgimostx  uE  uM  uR  uR  uT  uT  pU  pU  DV  DVW W W , *""qc)"".q$2BDH=A=OBL BL BL BL1 1 1D
 t//Gd66N$/99II W&&N 3 344"9--	
5G55666
<N<<===
7I77888*-H-H-H-H-HH"s   +K 
L!ALL!r   c                r    t          | j                  d| j         z  }|                    dd           |S )Ncmake_T)parentsexist_ok)r   r|   r6   mkdir)r7   	build_dirs     r+   r   zCMakeDependency._get_build_dir7  s>    ,--0D0D0DD	t444r*   
cmake_filec                   |                                  }|dz  }|dz  }|                                r|                                 t          j        |                                d           t          j                            d|d          }dd	l	m
 fd
| j        D             }|s|dgz  }t          j        d                              d                    |                    |z   }|dz  }|                    |d           t#          j        |                                                                           |S )NzCMakeCache.txt
CMakeFilesT)ignore_errorszmesonbuild.dependencies.datazutf-8)encodingr   )language_mapc                (    g | ]}|v |         S r)   r)   )r[   r\   ri  s     r+   r^   z4CMakeDependency._setup_cmake_dir.<locals>.<listcomp>R  s'    [[[alIZIZ,q/IZIZIZr*   NONEzt
            cmake_minimum_required(VERSION ${{CMAKE_VERSION}})
            project(MesonTemp LANGUAGES {})
        r   r:   )r   r  unlinkshutilrmtreeas_posix	importlib	resources	read_textr_   ri  rq   rC  rD  r   rn   
write_textr   cmd_ci_includeabsolute)	r7   rd  rc  cmake_cachecmake_files	cmake_txtcmake_languagecm_fileri  s	           @r+   _setup_cmake_dirz CMakeDependency._setup_cmake_dir<  se   ''))	  "22,. 	!   k**,,DAAAA '112PR\ip1qq	 	)((((([[[[43E[[[ 	'vh&NO %   VCHH^,,--	:	
 ..9w777G,,..7799:::r*   r   T.Optional[T.Dict[str, str]].T.Tuple[int, T.Optional[str], T.Optional[str]]c                f    |                      |          }| j                            |||          S )N)r   )r{  r   call)r7   r  rd  r   rc  s        r+   r   zCMakeDependency._call_cmakea  s4     ))*55	}!!$	s!;;;r*   c                     dS )Nr_   r)   r)   r*   r+   	log_triedzCMakeDependency.log_triedh  s    wr*   c                      fd j         D             }t          t          |                    }|rdd                    |          z   S dS )Nc                :    g | ]}                     |          S r)   )rJ   )r[   r\   r7   s     r+   r^   z/CMakeDependency.log_details.<locals>.<listcomp>m  s'    MMMQ4--a00MMMr*   z	modules: z, r/   )r}   r   rw   rn   )r7   r@   s   ` r+   log_detailszCMakeDependency.log_detailsl  sV    MMMM$:LMMMW&& 	47!3!333rr*   )r_   	pkgconfig
configtoolinternalsystemdefault_valuepkgconfig_definer_   r  r  r  r  r  r  r   c                   |r?| j         8	 | j         j        |         }d                    |          S # t          $ r Y nw xY w||S t	          d|           )Nrp   z9Could not get cmake variable and no default provided for )r   varsrn   KeyErrorr   )	r7   r_   r  r  r  r  r  r  rS  s	            r+   get_variablezCMakeDependency.get_variables  s      	#T%1#$)%0 xx{{"     $  !"f^b"f"fgggs   2 
??)r3   r!   r4   r   r4   r!   )r4   r   )r@   rA   rB   rA   r4   rA   )rH   r!   r4   r!   r   )r6   r!   rK   rL   rM   rN   rO   r1   rP   rQ   r4   rR   )r   r   r4   r   )rl   r!   r4   r   r  )
r6   r!   r   r   r   r   r   r   r4   rQ   )r6   r!   r   r!   r@   rA   rB   rA   r  r   r4   rR   )r4   r   )rd  r!   r4   r   r>   )r  r   rd  r!   r   r|  r4   r}  )r_   r1   r  r1   r  r1   r  r1   r  r1   r  r1   r  r   r4   r!   ) r%   r&   r'   r   r.   r(   r~   r   r2   r8   r<   r?   rE   rG   rJ   ry   r   r   staticmethod	functools	lru_cacher   r   r   r   r   r{  r   r  r  r  __classcell__)r   s   @r+   r-   r-      s         :DD$9O9OOOOOO!UUU/33333O O O O                   
EN EN EN EN EN EN ENN_ _ _ _T T T Tl Y&&&   '& \ Y&&&   '& \_ _ _ _B\# \# \# \#|   
# # # #P 9=< < < < <    \    8<Z^37UY/3VZ=Ah h h h h h h h h hr*   r-   c                  :    e Zd ZdddZdddZedd            ZdS )CMakeDependencyFactoryNr6   r1   r@   T.Optional[T.List[str]]c                "    || _         || _        d S r>   )r6   r@   )r7   r6   r@   s      r+   ry   zCMakeDependencyFactory.__init__  s    	r*   Fr!   r   r   rM   rN   rO   rP   rQ   r4   r-   c                X    | j         r
| j         |d<   t          | j        p|||||          S )Nr@   )r@   r-   r6   )r7   r6   r   rM   rO   rP   s         r+   __call__zCMakeDependencyFactory.__call__  s6    < 	- $F9ty0D#vxIcdddr*   c                 4    t                                           S r>   )r-   r  r)   r*   r+   r  z CMakeDependencyFactory.log_tried  s    ((***r*   )NN)r6   r1   r@   r  r   )r6   r!   r   r   rM   rN   rO   r1   rP   rQ   r4   r-   r  )r%   r&   r'   ry   r  r  r  r)   r*   r+   r  r    sk            e e e e e
 + + + \+ + +r*   r  r  r   r4   c                ~   t          |           }t                      }	 	 t          |          }n# t          $ r Y njw xY w|dk    rI	 t          |          }n # t          $ r t	          d|            w xY w|                    ||f           n|                    |f           d t          |          D             S )NTz
-frameworkz>Linker arguments contain '-framework' with no argument value: c                    g | ]	}|D ]}|
S r)   r)   )r[   xsr\   s      r+   r^   z"sort_link_args.<locals>.<listcomp>  s%    333"331A3333r*   )iterrw   nextStopIterationr
   addr   )r  itrresultargarg2s        r+   rJ  rJ    s    
t**C>AeeF	s))CC 	 	 	E	 ,pCyy  p p p$%nhl%n%nooop JJT{####JJv" 43v3333s   0 
==A A4)r  r   r4   r   )/
__future__r   baser   r   r   mesonlibr	   r
   r   r   r   r_   r   r   r   r   r   r   r   r   r/   r   importlib.resourcesrp  pathlibr   r  r   rk   rm  rC  typingTTYPE_CHECKINGr   rK   r   	envconfigr   interpreter.type_checkingr   
NamedTupler   r-   r  rJ  r)   r*   r+   <module>r     sF   # " " " " " M M M M M M M M M M ] ] ] ] ] ] ] ] ] ] ] ] ] ] c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c                     				 				      ? @######))))))''''''??????       j	h j	h j	h j	h j	h( j	h j	h j	hZ+ + + + + + + + 4 4 4 4 4 4r*   