+
    UBi`n                      a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
Ht ^RIHtHt ^RIHt ^RIHtHtHtHtHt ^RIHt ]P0                  '       dU   ^ RIHtHtHt ^R	IHt ^R
IH t  ^RI!H"t" ^RI#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ ^RI,H-t- ]R5,          t.R]/R&    ! R R]RR7      t0]t1M]2t1 ! R R]4      t3 ! R R]14      t4 ! R R]4      t5]Pl                  ! R]74      t8 ! R R]4      t9 ! R R]94      t: ! R R ]94      t; ! R! R"]94      t< ! R# R$];4      t=R% R& lt>R' R( lt?R) R* lt@R+ R, ltAR- R. ltBR/ R0 ltC ! R1 R2];4      tD ! R3 R4];4      tER# )6    )annotationsN)Enum)mlogmesonlib)
clib_langs)LibTypeMachineChoiceMesonExceptionHoldableObjectversion_compare_many)	OptionKey)Literal	TypedDict	TypeAlias)Compiler)Environment)FeatureCheckBase)CustomTargetIncludeDirsCustomTargetIndexLibTypesStaticLibraryStructuredSourcesExtractedObjectsGeneratedTypes)PkgConfigDefineTyper   IncludeTypec                      ] tR t^%t$ RtR]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R tR!# )"DependencyObjectKWszKeyword arguments that the Dependency IR object accepts.

This is different than the arguments as taken by the Interpreter, since
it is expected to be clean.
T.List[str]
cmake_argscmake_module_pathstrcmake_package_version
componentsr   include_typeT.Optional[str]languageboolmainDependencyMethodsmethodmodulesr	   nativeoptional_modulesprivate_headersrequiredzT.Optional[bool]staticversionembedpathsintreturncode_valuesilenttoolsversion_arg N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r;       A/usr/lib/python3.14/site-packages/mesonbuild/dependencies/base.pyr   r   %   s    	  &&""!!!!
!!%%    rC   r   F)totalc                      ] tR t^LtRtRtR# )DependencyExceptionz3Exceptions raised while trying to find dependenciesr;   N)r<   r=   r>   r?   r@   rB   r;   rC   rD   rG   rG   L   s    =rC   rG   c                      ] tR t^PtRt]P                  '       d   R R ltR R ltR R lt	R R	 lt
R
 R ltR R ltRtR# )MissingCompilerzjRepresent a None Compiler - when no tool chain is found.
replacing AttributeError with DependencyExceptionc                   V ^8  d   QhRR/#    returnNoner;   )formats   "rD   __annotate__MissingCompiler.__annotate__W   s     	 	d 	rC   c                	    R # Nr;   selfs   &rD   __init__MissingCompiler.__init__W   s    rC   c                    V ^8  d   QhRRRR/# )rL   optimization_levelr#   rM   r    r;   )rO   s   "rD   rP   rQ   Z   s     	 	C 	K 	rC   c                	    . # rS   r;   )rU   rY   s   &&rD   get_optimization_args%MissingCompiler.get_optimization_argsZ       IrC   c                    V ^8  d   QhRRRR/# )rL   
outputnamer#   rM   r    r;   )rO   s   "rD   rP   rQ   ]   s     	 	c 	k 	rC   c                	    . # rS   r;   )rU   r_   s   &&rD   get_output_argsMissingCompiler.get_output_args]   r]   rC   c                    V ^8  d   QhRRRR/# )rL   work_dirr#   rM   rN   r;   )rO   s   "rD   rP   rQ   `   s     	 	 	 	rC   c                	    R # rS   r;   )rU   rd   s   &&rD   sanity_checkMissingCompiler.sanity_check`   s    rC   c                    V ^8  d   QhRRRR/# )rL   itemr#   rM   zT.Anyr;   )rO   s   "rD   rP   rQ   c   s     8 8 8 8rC   c                	Z    VP                  R 4      '       d   \        4       h\        R4      h)__zno toolchain found)
startswithAttributeErrorrG   )rU   ri   s   &&rD   __getattr__MissingCompiler.__getattr__c   s&    ??4   ""!"677rC   c                   V ^8  d   QhRR/# rL   rM   r)   r;   )rO   s   "rD   rP   rQ   h         $ rC   c                	    R # Fr;   rT   s   &rD   __bool__MissingCompiler.__bool__h       rC   r;   N)r<   r=   r>   r?   r@   TTYPE_CHECKINGrV   r[   ra   rf   rn   ru   rB   r;   rC   rD   rI   rI   P   s5    9
 					8
 rC   rI   c                  :    ] tR t^ltRtRtRtRtRtRt	Rt
RtR	tR
tR# )r+   autoz
pkg-configcmakebuiltinsystemextraframework	sysconfigzconfig-tooldubr;   N)r<   r=   r>   r?   AUTO	PKGCONFIGCMAKEBUILTINSYSTEMEXTRAFRAMEWORK	SYSCONFIGCONFIG_TOOLDUBrB   r;   rC   rD   r+   r+   l   s/    DIEGF%NIK
CrC   r+   DependencyTypeNamec                  ~   ] tR t^tR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltRBR R lltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR)RR*RR+RR,RR-R/R. R/ lltR0 R1 ltR2RR3RR4RR5RR6RR7RR8R/R9 R: lltR; R< ltR= R> ltR? R@ ltRAtR# )C
Dependencyc               $    V ^8  d   QhRRRRRR/# )rL   	type_namer   kwargsr   rM   rN   r;   )rO   s   "rD   rP   Dependency.__annotate__   s$     / /"4 />Q /VZ /rC   c                	   \         P                  ! 4       P                  V n        R V P                   2V n        RV n        RV n        RV n        Wn        . V n	        . V n
        RV n        . V n        . V n        VP                  RR4      V n        . V n        \"        P$                  ! \&        4      V n        . V n        RV n        . V n        R# )depNFr&   preserve)uuiduuid4r6   _idnamer3   r(   is_foundr   compile_args	link_argsraw_link_argssourcesextra_filesgetr&   ext_depscollectionsdefaultdictlist
d_featuresfeaturechecksfeature_sincemeson_variables)rU   r   r   s   &&&rD   rV   Dependency.__init__   s     ::<##$(($	)-)-")+)+ 7;\^24"JJ~zB,.=H=T=TUY=Z9;<@,.rC   c                    V ^8  d   QhRRRR/# )rL   otherobjectrM   r)   r;   )rO   s   "rD   rP   r      s     % %F %t %rC   c                	l    \        V\        4      '       g   \        # V P                  VP                  8H  # rS   )
isinstancer   NotImplementedr   )rU   r   s   &&rD   __eq__Dependency.__eq__   s(    %,,!!xx599$$rC   c                   V ^8  d   QhRR/# )rL   rM   r6   r;   )rO   s   "rD   rP   r      s      # rC   c                	    V P                   # rS   )r   rT   s   &rD   __hash__Dependency.__hash__   s    xxrC   c                   V ^8  d   QhRR/# rL   rM   r#   r;   )rO   s   "rD   rP   r      s     K K# KrC   c                	j    R V P                   P                   RV P                   RV P                   R2# )< z: >)	__class__r<   r   r   rT   s   &rD   __repr__Dependency.__repr__   s0    4>>**+1TYYKr$--JJrC   c                   V ^8  d   QhRR/# rq   r;   )rO   s   "rD   rP   r      rr   rC   c                	    R # rt   r;   rT   s   &rD   is_builtDependency.is_built   rw   rC   c                   V ^8  d   QhRR/# rq   r;   )rO   s   "rD   rP   r      s     - -$ -rC   c                	Z    V P                   f   R# V P                   RV P                   28g  # )NFr   )r   r   rT   s   &rD   is_namedDependency.is_named   s)    99yyc$((,,,rC   c                   V ^8  d   QhRR/# )rL   rM   z/T.Union[str, mlog.AnsiDecorator, mlog.AnsiText]r;   )rO   s   "rD   rP   r      s     N NN NrC   c                	>   V P                  4       '       g   \        P                  ! R 4      # V P                  '       g   \        P                  ! R4      # \        P
                  ! \        P                  ! R4      R\        P                  ! V P                  4      4      # )NOYESr   )foundr   redr3   greenAnsiTextcyanrT   s   &rD   summary_valueDependency.summary_value   s\    zz||88D>!|||::e$$}}TZZ.TYYt||5LMMrC   c                   V ^8  d   QhRR/# rL   rM   r    r;   )rO   s   "rD   rP   r      s     ! !+ !rC   c                	   V P                   R 8X  di   . pV P                   FT  pVP                  R4      '       g   VP                  R4      '       d   VRVR,          ,           .,          pKK  W.,          pKV  	  V# V P                   R8X  dR   . pV P                   F=  pVP                  R4      '       d   VRVR,          ,           .,          pK4  W.,          pK?  	  V# V P                  # )r~   -Iz/Iz-isystem:rL   NN
non-system:   NN)r&   r   rl   )rU   	convertedis   &  rD   get_compile_argsDependency.get_compile_args   s    (I&&<<%%d););*qu"4!55I$I	 '
 ,I&&<<
++$2,/I$I	 '
    rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r      s     Y Yk YrC   c                    \        \        P                  ! V P                  4       .R V P                   4       O5!  4      # )zHGet the compile arguments from this dependency and its sub dependencies.c              3  @   "   T F  qP                  4       x  K  	  R # 5irS   )get_all_compile_args.0ds   & rD   	<genexpr>2Dependency.get_all_compile_args.<locals>.<genexpr>   s     %V1&<&<&>&>   )r   	itertoolschainr   r   rT   s   &rD   r   Dependency.get_all_compile_args   s:    IOOD$9$9$; X%V%VX Y 	YrC   NFc               $    V ^8  d   QhRRRRRR/# rL   r(   r'   rawr)   rM   r    r;   )rO   s   "rD   rP   r      s"      o 4 T_ rC   c                	^    V'       d   V P                   e   V P                   # V P                  # rS   )r   r   )rU   r(   r   s   &&&rD   get_link_argsDependency.get_link_args   s&    4%%1%%%~~rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r      s     V V; VrC   c                    \        \        P                  ! V P                  4       .R V P                   4       O5!  4      # )zEGet the link arguments from this dependency and its sub dependencies.c              3  @   "   T F  qP                  4       x  K  	  R # 5irS   )get_all_link_argsr   s   & rD   r   /Dependency.get_all_link_args.<locals>.<genexpr>   s     %S]&9&9&;&;]r   )r   r   r   r   r   rT   s   &rD   r   Dependency.get_all_link_args   s:    IOOD$6$6$8 U%ST]]%SU V 	VrC   c                   V ^8  d   QhRR/# rq   r;   )rO   s   "rD   rP   r      s      t rC   c                	    V P                   # rS   )r   rT   s   &rD   r   Dependency.found   s    }}rC   c                   V ^8  d   QhRR/# )rL   rM   zCT.List[T.Union[mesonlib.File, GeneratedTypes, 'StructuredSources']]r;   )rO   s   "rD   rP   r      s      ` rC   c                    V P                   # )z_Source files that need to be added to the target.
As an example, gtest-all.cc when using GTest.)r   rT   s   &rD   get_sourcesDependency.get_sources   s     ||rC   c                   V ^8  d   QhRR/# )rL   rM   zT.List[mesonlib.File]r;   )rO   s   "rD   rP   r      s        !6  rC   c                    V P                   # )z!Mostly for introspection and IDEs)r   rT   s   &rD   get_extra_filesDependency.get_extra_files   s    rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r      s      # rC   c                	    V P                   # rS   r   rT   s   &rD   get_nameDependency.get_name   s    yyrC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r      s      S rC   c                	B    V P                   '       d   V P                   # R # )unknown)r3   rT   s   &rD   get_versionDependency.get_version   s    <<<<<rC   c                   V ^8  d   QhRR/# rL   rM   T.List['IncludeDirs']r;   )rO   s   "rD   rP   r      s      "7 rC   c                	    . # rS   r;   rT   s   &rD   get_include_dirsDependency.get_include_dirs       	rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r      s     ! !# !rC   c                	    V P                   # rS   )r&   rT   s   &rD   get_include_typeDependency.get_include_type   s       rC   c                    V ^8  d   QhRRRR/# )rL   compilerz
'Compiler'rM   r    r;   )rO   s   "rD   rP   r      s      Z K rC   c                	    . # rS   r;   )rU   r  s   &&rD   get_exe_argsDependency.get_exe_args   r  rC   r   r   linksincludesr   c               0    V ^8  d   QhRRRRRRRRRRRR/# )	rL   r   r)   r   r  r  r   rM   'Dependency'r;   )rO   s   "rD   rP   r      sC     L Ld L*.L?CL)-L@DLQ]LrC   c                   \        R4      h)a  Create a new dependency that contains part of the parent dependency.

The following options can be inherited:
    links -- all link_with arguments
    includes -- all include_directory and -I/-isystem calls
    sources -- any source, header, or generated sources
    compile_args -- any compile args
    link_args -- any link args

Additionally the new dependency will have the version parameter of its
parent (if any) and the requested values of any dependencies will be
added as well.
z-Unreachable code in partial_dependency called)RuntimeError)rU   r   r   r  r  r   s   &$$$$$rD   get_partial_dependency!Dependency.get_partial_dependency   s      JKKrC   c                    V ^8  d   QhRRRR/# )rL   deplistz(T.Iterable[T.Callable[[], 'Dependency']]rM   r)   r;   )rO   s   "rD   rP   r     s      +S X\ rC   c                    V F:  pV! 4       pVP                   '       g   K  V P                  P                  V4        R# 	  R# )zAdd an internal dependency from a list of possible dependencies.

This method is intended to make it easier to add additional
dependencies to another dependency internally.

Returns true if the dependency was successfully added, false
otherwise.
TF)r   r   append)rU   r"  r   r   s   &&  rD   _add_sub_dependencyDependency._add_sub_dependency  s8     A#C|||$$S)	 
 rC   r|   	pkgconfig
configtoolinternalr~   default_valuepkgconfig_definec               8    V ^8  d   QhRRRRRRRRRRRRRR	R
R/# rL   r|   r'   r'  r(  r)  r~   r*  r+  r   rM   r#   r;   )rO   s   "rD   rP   r     sZ     I I_ I I!0ICRI,IDSI (;I GJIrC   c               	.    Ve   V# \        RV : R24      h)Nz#No default provided for dependency z7, which is not pkg-config, cmake, or config-tool based.)rG   )rU   r|   r'  r(  r)  r~   r*  r+  s   &$$$$$$$rD   get_variableDependency.get_variable  s3     $  !$Gx  PG  #H  I  	IrC   c                    V ^8  d   QhRRRR/# )rL   r&   r   rM   r  r;   )rO   s   "rD   rP   r     s      { | rC   c                	>    \         P                  ! V 4      pWn        V# rS   )copydeepcopyr&   )rU   r&   new_deps   && rD   generate_system_dependency%Dependency.generate_system_dependency  s    --%+rC   c                    V ^8  d   QhRRRR/# rL   	recursiver)   rM   r   r;   )rO   s   "rD   rP   r   $        t 
 rC   c                    V # z)Used as base case for internal_dependencyr;   rU   r:  s   &&rD   get_as_staticDependency.get_as_static$      rC   c                    V ^8  d   QhRRRR/# r9  r;   )rO   s   "rD   rP   r   (  r;  rC   c                    V # r=  r;   r>  s   &&rD   get_as_sharedDependency.get_as_shared(  rA  rC   )r   r   r   r   r   r   r   r&   r   r(   r   r   r   r   r   r   r3   NF)r<   r=   r>   r?   rV   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r%  r/  r6  r?  rD  rB   r;   rC   rD   r   r      s    /.%
K-
N!&Y

V

 !LU L16LFKL05LGLL$ It IZ^ I37IUYI/3IVZI >BI
 rC   r   c                     a  ] tR tRtR&R V 3R llltR R ltR R ltR	 R
 ltRRRRRRRRRRRR/R R lltR R lt	RRRRRRRRRRRRRR/R R llt
R R  ltR! R" ltR# R$ ltR%tV ;t# )'InternalDependencyi,  Nc               P    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRR/# )rL   r3   r#   incdirsr  r   r    r   	librarieszT.List[LibTypes]whole_libraries?T.List[T.Union[StaticLibrary, CustomTarget, CustomTargetIndex]]r   zET.Sequence[T.Union[mesonlib.File, GeneratedTypes, StructuredSources]]r   zT.Sequence[mesonlib.File]r   T.List[Dependency]	variableszT.Dict[str, str]d_module_versionszT.List[T.Union[str, int]]d_import_dirsobjectszT.List['ExtractedObjects']r   r'   r;   )rO   s   "rD   rP   InternalDependency.__annotate__-  s       .C S^ ', #b `	
 8 . ;K %> Od 5 'rC   c                	l  < \         SV `  \        R 4      / 4       Wn        RV n        W n        W0n        W@n        WPn        W`n	        \        V4      V n        \        V4      V n        Wn        Wn        Wn        V'       d   WP                   R&   V'       d   WP                   R&   V'       d	   Wn        R# R# )r)  Tversionsimport_dirsN)superrV   r   r3   r   include_directoriesr   r   rK  rL  r   r   r   r   rO  rR  r   r   )rU   r3   rJ  r   r   rK  rL  r   r   r   rO  rP  rQ  rR  r   r   s   &&&&&&&&&&&&&&&rD   rV   InternalDependency.__init__-  s     	+J7<#* ("".G}, "*;OOJ'-:OOM*I rC   c                    V ^8  d   QhRRRR/# )rL   memoz!T.Dict[int, 'InternalDependency']rM   z'InternalDependency'r;   )rO   s   "rD   rP   rS  K  s     	 	!B 	G[ 	rC   c           	     	r   V P                   P                  V P                   4      p\        V\        4      '       g   Q hW!\	        V 4      &   V P
                  P                  4        FN  w  r4VR9   d#   \        W#\        P                  ! V4      4       K.  \        W#\        P                  ! WA4      4       KP  	  V# )rK  >   rK  rL  )
r   __new__r   rH  id__dict__itemssetattrr3  r4  )rU   r[  resultkvs   &&   rD   __deepcopy__InternalDependency.__deepcopy__K  s    ''7&"45555RXMM'')DA44499Q<04==#9:	 *
 rC   c                   V ^8  d   QhRR/# )rL   rM   zmlog.AnsiDecoratorr;   )rO   s   "rD   rP   rS  V  s     ! !1 !rC   c                	.    \         P                  ! R 4      # )r   )r   r   rT   s   &rD   r    InternalDependency.summary_valueV  s     zz%  rC   c                   V ^8  d   QhRR/# rq   r;   )rO   s   "rD   rP   rS  [  s     8 8$ 8rC   c                	   V P                   '       g%   V P                  '       g   V P                  '       d   R # \        ;QJ d&    R V P                   4       F  '       g   K   R # 	  R# ! R V P                   4       4      # )Tc              3  @   "   T F  qP                  4       x  K  	  R # 5irS   )r   r   s   & rD   r   .InternalDependency.is_built.<locals>.<genexpr>^  s     7A::<<r   F)r   rK  rL  anyr   rT   s   &rD   r   InternalDependency.is_built[  sR    <<<4>>>T-A-A-As77ss7s7s7777rC   r   Fr   r  r  r   r   c               4    V ^8  d   QhRRRRRRRRRRRRRR	/# )
rL   r   r)   r   r  r  r   r   rM   rH  r;   )rO   s   "rD   rP   rS  `  sQ     a ad a*.a?Ca)-a@Da -1a >ParC   c               	   V'       d   V P                   P                  4       M. pV'       d   V P                  P                  4       M. pV'       d   V P                  P                  4       M. p	V'       d   V P                  P                  4       M. p
V'       d   V P
                  P                  4       M. pV'       d   V P                  P                  4       M. pV'       d   V P                  P                  4       M. pV P                   Uu. uF  pVP                  WVWER 7      NK  	  pp\        V P                  WWV
WWP                  . . . V P                  4      # u upi ))r   r   r  r  r   )r   r3  r   rK  rL  r   r   rX  r   r  rH  r3   rO  r   )rU   r   r   r  r  r   r   final_compile_argsfinal_link_argsfinal_librariesfinal_whole_librariesfinal_sourcesfinal_extra_filesfinal_includesr   
final_depss   &$$$$$$         rD   r  )InternalDependency.get_partial_dependency`  s)    :FT..33523<$..--/"38$..--/b?D 4 4 9 9 ;"/6))+B7BD,,113<D11668" :>H9FA ..%% / 09F 	 H "LL..Cj.."bRTVZV_V_a 	aHs   Ec                   V ^8  d   QhRR/# r
  r;   )rO   s   "rD   rP   rS  s  s     ( ("7 (rC   c                	    V P                   # rS   )rX  rT   s   &rD   r  #InternalDependency.get_include_dirss  s    '''rC   r|   r'  r(  r)  r~   r*  r+  c               8    V ^8  d   QhRRRRRRRRRRRRRR	R
R/# r-  r;   )rO   s   "rD   rP   rS  v  sZ     n n_ n n!0nCRn,nDSn (;n GJnrC   c               	b    V P                   P                  WF4      pVe   V# \        RV : 24      h)Nz?Could not get an internal variable and no default provided for )rO  r   rG   )	rU   r|   r'  r(  r)  r~   r*  r+  vals	   &$$$$$$$ rD   r/  InternalDependency.get_variablev  s7     nn  9?J!$cdhck"lmmrC   c                   V ^8  d   QhRR/# )rL   rM   r   r;   )rO   s   "rD   rP   rS    s      
 rC   c                	   ^RI HpHpHp \        P
                  ! V 4      pVP                   FU  p\        WQ4      '       d   \        R4      h\        WRV34      '       g   K4  VP                  4       '       g   KL  \        R4      h	  V;P                  \        P                  ! RVP                  4      ,          un
        . Vn        V# )rL   )SharedLibraryr   r   zJCannot convert a dependency to link_whole when it contains a SharedLibraryzxCannot convert a dependency to link_whole when it contains a CustomTarget or CustomTargetIndex which is a shared libraryrM  )buildr  r   r   r3  r4  rK  r   r
   links_dynamicallyrL  rx   cast)rU   r  r   r   r5  xs   &     rD   generate_link_whole_dependency1InternalDependency.generate_link_whole_dependency  s    JJ--%""A!++$ &5 6 6A.?@AAaFYFYF[F[$ &c d d # 	166*k*1*;*;$= 	=rC   c                    V ^8  d   QhRRRR/# rL   r:  r)   rM   rH  r;   )rO   s   "rD   rP   rS          t 0B rC   c                	   \         P                   ! V 4      pV P                   Uu. uF  q3P                  R V4      NK  	  upVn        V'       d0   V P                   Uu. uF  qDP	                  R4      NK  	  upVn        V# u upi u upi )r2   T)r3  rK  r   r   r?  rU   r:  r5  libr   s   &&   rD   r?   InternalDependency.get_as_static  h    ))D/EI^^T^cWWXy9^TCG==Q=C 1 1$ 7=QG UQ   B Bc                    V ^8  d   QhRRRR/# r  r;   )rO   s   "rD   rP   rS    r  rC   c                	   \         P                   ! V 4      pV P                   Uu. uF  q3P                  R V4      NK  	  upVn        V'       d0   V P                   Uu. uF  qDP	                  R4      NK  	  upVn        V# u upi u upi )sharedT)r3  rK  r   r   rD  r  s   &&   rD   rD   InternalDependency.get_as_shared  r  r  )r   r   r   rX  r   rK  r   r   rR  r   rO  r3   rL  rS   )r<   r=   r>   r?   rV   re  r   r   r  r  r/  r  r?  rD  rB   __classcell__r   s   @rD   rH  rH  ,  s     <	!
8
aU a16aFKa05aGLa 49a&(nt nZ^ n37nUYn/3nVZn >Bn" rC   rH  c            
          ] tR tRtRR R lltR R ltRRR	RR
RRRRR/R R lltR R ltR R lt]	R R l4       t
R R ltRtR# )ExternalDependencyi  Nc               (    V ^8  d   QhRRRRRRRR/# )	rL   r   r   environment'Environment'r   r   r(   r'   r;   )rO   s   "rD   rP   ExternalDependency.__annotate__  s5     f f"4 f= fZm f  zI frC   c                	   \         P                  WV4       W n        Wn        R V n        W@n        VP                  R. 4      V n        VP                  RR4      V n        VP                  RR 4      V n	        VP                  R4      pVfN   \        P                  ! RV P                  P                  P                  P                  \        R4      4      4      pWPn        V P                   '       d   \"        P$                  M\"        P&                  V n        VP                  R	\*        P,                  4      V n        \1        V P                  W P.                  V P
                  4      V n        R# )
Fr3   r1   Tr8   r2   Nr)   prefer_staticr.   )r   rV   envr   r   r(   r   version_reqsr1   r8   rx   r  coredataoptstoreget_value_forr   r2   r   STATICPREFER_SHAREDlibtyper	   HOSTfor_machinedetect_compilerclib_compiler)rU   r   r  r   r(   r2   s   &&&&& rD   rV   ExternalDependency.__init__  s    DV4	 "JJy"5

:t4jj51H%>VVFDHH$5$5$>$>$L$LYWfMg$hiF)-w~~':O:O!::h0B0BC,TYYEUEUW[WdWderC   c                   V ^8  d   QhRR/# )rL   rM   &T.Union['MissingCompiler', 'Compiler']r;   )rO   s   "rD   rP   r    s     " "D "rC   c                	    V P                   # rS   )r  rT   s   &rD   get_compilerExternalDependency.get_compiler  s    !!!rC   r   Fr   r  r  r   c               0    V ^8  d   QhRRRRRRRRRRRR/# )	rL   r   r)   r   r  r  r   rM   r   r;   )rO   s   "rD   rP   r    s;      d *.?C)-@DQ[rC   c               	   \         P                   ! V 4      p\        P                  ! 4       P                  Vn        V'       g   . Vn        V'       g   . Vn        V'       g   . Vn        V'       g    V'       g   . Vn        V# rS   )r3  r   r   r6   r   r   r   r   rU   r   r   r  r  r   news   &$$$$$ rD   r  )ExternalDependency.get_partial_dependency  sX     iio**,""!CCMCKCK
rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r    s      S rC   c                	    R #  r;   rT   s   &rD   log_detailsExternalDependency.log_details      rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r    s      # rC   c                	    R # r  r;   rT   s   &rD   log_infoExternalDependency.log_info  r  rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r    s      s rC   c                 	    R # r  r;   r;   rC   rD   	log_triedExternalDependency.log_tried  s    rC   c                   V ^8  d   QhRR/# rK   r;   )rO   s   "rD   rP   r    s     ! ! !rC   c                	   V P                   '       g   R # V P                  '       Ed:   V P                  '       g   RV n         . pVR\        P                  ! V P
                  4      R.,          pV\        \        P                  ! R4      4      R,           RV P                  .,          p\        P                  ! V!   V P                  '       d   RV P                  : R2p\        V4      hR # \        V P                  V P                  4      w  V n         r4V P                   '       Eg:   R\        P                  ! V P
                  4      R.pT\        \        P                  ! R4      4      R,           R\        P                  ! V P                  4      R	\        P                  ! R
P                  V Uu. uF	  pRV R2NK  	  up4      4      .,          pV'       d/   TRR
P                  V Uu. uF	  pRV R2NK  	  up4      .,          p\        P                  ! V!   V P                  '       d2   Rp\        VP                  V P
                  W0P                  4      4      hR # R # R # u upi u upi )NFr   found:r   .zUnknown version, but need:zUnknown version, but need Foundz	but need:z, 'z
; matched:z+Invalid version, need {!r} {!r} found {!r}.)r   r  r3   r   boldr   r#   r   logr1   rG   r   normal_cyanjoinrO   )rU   	found_msgm	not_foundr   es   &     rD   _check_version!ExternalDependency._check_version  s   }}}<<< %24	lDIIdii,@(KK	c$((4.1C79UW[WhWhii	)$===4T5F5F4IKA-a00 ! )t7H7HI 2	}}}!-tyy/CX NI#dhhtn"5";")4+;+;DLL+I;"&))DII6SA1#Qx6S,T"U"W WI !l&*ii50I5a1QCq50I&J&L L	HHi(}}}I1!((499iQ]Q]2^__ %! ( 7T 1Js   /I#)I()r  r  r  r   r(   r  r   r1   r8   r2   r  rS   )r<   r=   r>   r?   rV   r  r  r  r  staticmethodr  r  rB   r;   rC   rD   r  r    sa    f$"U 16FK05GL$  ! !rC   r  c            
      R   a  ] tR tRtR V 3R lltRRRRRRRRR	R/R
 R lltRtV ;t# )NotFoundDependencyi  c               $    V ^8  d   QhRRRRRR/# )rL   r   r#   r  r  rM   rN   r;   )rO   s   "rD   rP   NotFoundDependency.__annotate__  s!      S }  rC   c                	`   < \         SV `  \        R 4      / 4       W n        Wn        RV n        R# )z	not-foundFN)rW  rV   r   r  r   r   )rU   r   r  r   s   &&&rD   rV   NotFoundDependency.__init__  s)    +K8"=	rC   r   Fr   r  r  r   c               0    V ^8  d   QhRRRRRRRRRRRR/# )	rL   r   r)   r   r  r  r   rM   z'NotFoundDependency'r;   )rO   s   "rD   rP   r    s;      d *.?C)-@DQerC   c               	z    \         P                   ! V 4      p\        P                  ! 4       P                  Vn        V# rS   )r3  r   r   r6   r   r  s   &$$$$$ rD   r  )NotFoundDependency.get_partial_dependency  s)     iio**,""
rC   )r  r   r   )r<   r=   r>   r?   rV   r  rB   r  r  s   @rD   r  r    s>     U 16FK05GL rC   r  c            
      l   a  ] tR tRtRR V 3R llltRR V 3R llltRRRRR	RR
RRR/R R lltRtV ;t# )ExternalLibraryi  Fc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )rL   r   r#   r   r    r  r  r(   r8   r)   rM   rN   r;   )rO   s   "rD   rP   ExternalLibrary.__annotate__  sA     O OS O[ O} OO(,O9=OrC   c                	  < \         SV `  \        R 4      V/ VR7       Wn        W@n        RV n        V'       d   RV n        W n        V'       g   V P
                  '       dD   \        P                  ! R\        P                  ! V4      R\        P                  ! R4      4       R# \        P                  ! R\        P                  ! V4      R\        P                  ! R4      4       R# R# )	libraryr(   FTLibraryr  r   r   N)rW  rV   r   r   r(   r   r   r   r  r  r   r   )rU   r   r   r  r(   r8   r   s   &&&&&&rD   rV   ExternalLibrary.__init__  s    +I6RRZ[	  DM&N}}}DIIdOXtzz%?PQDIIdOXtxx~N	 rC   c               $    V ^8  d   QhRRRRRR/# r   r;   )rO   s   "rD   rP   r    s'     A Ao A4 AT_ ArC   c                   < V P                   R8X  d   VR8w  g   VR8X  d   V P                   R8w  d   . # \        SV `	  WR7      # )a4  
External libraries detected using a compiler must only be used with
compatible code. For instance, Vala libraries (.vapi files) cannot be
used with C code, and not all Rust library types can be linked with
C-like code. Note that C++ libraries *can* be linked with C code with
a C++ linker (and vice-versa).
vala)r(   r   )r(   rW  r   )rU   r(   r   r   s   &&&rD   r   ExternalLibrary.get_link_args  sC     MMV#F(:4==F#:Iw$h$@@rC   r   r   r  r  r   c               0    V ^8  d   QhRRRRRRRRRRRR/# )	rL   r   r)   r   r  r  r   rM   z'ExternalLibrary'r;   )rO   s   "rD   rP   r  #  s;     	 	d 	*.	?C	)-	@D	Qb	rC   c               	    \         P                   ! V 4      p\        P                  ! 4       P                  Vn        V'       g   . Vn        V# rS   )r3  r   r   r6   r   r   r  s   &$$$$$ rD   r  &ExternalLibrary.get_partial_dependency#  s3    
 iio**,""CM
rC   )r   r(   r   r   rt   rF  )	r<   r=   r>   r?   rV   r   r  rB   r  r  s   @rD   r  r    sL    O OA A	U 	16	FK	05	GL	 	rC   r  c                    V ^8  d   QhRRRR/# )rL   depsrN  rM   r;   )rO   s   "rD   rP   rP   /  s      ); @R rC   c                V   V '       g   V P                  4       # . pV '       d   . p\        P                  ! V 4       Ff  p\        V\        4      '       d   VP                  4       '       d   \        R 4      hVP                  V4       VP                  VP                  4       Kh  	  Tp K  V# )z*Dependencies must be external dependencies)
r3  r   listifyr   r   r   rG   r$  extendr   )r  ry  	next_depsr   s   &   rD   get_leaf_external_dependenciesr  /  s    yy{J
	!!$'Aa,,

)*VWWa QZZ(	 (
 rC   c               $    V ^8  d   QhRRRRRR/# )rL   libpathsr    refpathsrM   r;   )rO   s   "rD   rP   rP   ?  s!     * *K *; *; *rC   c                d   a \        S4      ^ 8X  d   \        V 4      # R V3R llp\        WR7      # )zSort <libpaths> according to <refpaths>

It is intended to be used to sort -L flags returned by pkg-config.
Pkg-config returns flags in random order which cannot be relied on.
c                    V ^8  d   QhRRRR/# )rL   libpathr#   rM   zT.Tuple[int, int]r;   )rO   s   "rD   rP   #sort_libpaths.<locals>.__annotate__H  s     0 0# 0"3 0rC   c                &  < . pS F>  p \         P                  P                  W.4      pVP	                  \        V4      4       K@  	  \        V4      pVP                  V4      p\        SV,          4      V,
          pWV3#   \         d    R p Lei ; ir  )ospath
commonpath
ValueErrorr$  lenmaxindex)r  common_lengthsrefpathcommon_path
max_length	max_indexreversed_max_lengthr  s   &      rD   key_funcsort_libpaths.<locals>.key_funcH  s    &(G!#%77#5#5w6H#I !!#k"23   (
"((4	!(9"56C//  ! !s    B  BB)key)r  r   sorted)r  r  r  s   &f rD   sort_libpathsr  ?  s2     8}H~0 0 ())rC   c               (    V ^8  d   QhRRRRRRRR/# )rL   r  r  r  r	   r   r    rM   r;   )rO   s   "rD   rP   rP   V  s*     6 6m 6- 6\g 6lw 6rC   c                    V P                  V4       Uu0 uF  pRV 2kK
  	  ppV Uu. uF  qUV9  g   K  VNK  	  up# u upi u upi )zRemove -L<system path> arguments.

leaving these in will break builds where a user has a version of a library
in the system path, and a different version not in the system path if they
want to link against the non-system path version.
z-L)get_compiler_system_lib_dirs)r  r  r   pexcludels   &&&   rD   strip_system_libdirsr  V  sP     "-!I!I+!VW!VAA3x!VGW 5y!W$4AAy55 X5   >AAc               (    V ^8  d   QhRRRRRRRR/# )rL   r  r  r  r	   include_argsr    rM   r;   )rO   s   "rD   rP   rP   `  s*     	9 	9- 	9m 	9cn 	9s~ 	9rC   c                    V P                  V4       Uu0 uF  pRV 2kK
  	  ppV Uu. uF  qUV9  g   K  VNK  	  up# u upi u upi )zRemove -I<system path> arguments.

leaving these in will break builds where user want dependencies with system
include-type used in rust.bindgen targets as if will cause system headers
to not be found.
r   ) get_compiler_system_include_dirs)r  r  r  r  r  r   s   &&&   rD   strip_system_includedirsr  `  sP     "-!M!Mk!Z[!ZAA3x!ZG[#8|!'7AA|88 \8r  c               $    V ^8  d   QhRRRRRR/# )rL   possiblezT.Iterable[DependencyMethods]r   r   rM   zT.List[DependencyMethods]r;   )rO   s   "rD   rP   rP   k  s$       = GZ _x rC   c                   VP                  R \        P                  4      pV\        P                  8X  d   \        V 4      pV# W 9   d   V.pV# \	        RP                  VP                  \        P                  ! \        P                  .\        V 4      ,            Uu. uF  qDP                  NK  	  up4      4      4      hu upi )r,   z8Unsupported detection method: {}, allowed methods are {})	r   r+   r   r   rG   rO   valuer   format_list)r!  r   r,   methodsr  s   &&   rD   process_method_kwr&  k  s    ZZ"3"8"89F "'''-1(^ N 
	( N "FMM  4E4J4J3KdS[n3\!]3\a''3\!]^`a 	a "^s   B?c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rL   r   r#   r  r  r  r	   r(   r'   rM   r  r;   )rO   s   "rD   rP   rP   }  s1      # M  -2XrC   c                J   VP                   P                  V,          pV'       dN   W49  d@   V P                  4       R,           p\        VP	                  VP                  4       4      4      hWC,          # \
         F  p WF,          u # 	  \        4       #   \         d     K(  i ; i)z8Given a language and environment find the compiler used.zI requires a {0} compiler, but {0} is not in the list of project languages)r  	compilers
capitalizerG   rO   r   KeyErrorrI   )r   r  r  r(   r)  r  langs   &&&&   rD   r  r  }  s     &&{3I $! %> >A%ahhx/B/B/D&EFF""D & 
   s   =BB"!B"c                  L   a  ] tR tRtRtRR V 3R lllt]R R l4       tRtV ;t	# )	SystemDependencyi  z-Dependency base for System type dependencies.c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# rL   r   r#   r  r  r   r   r(   r'   rM   rN   r;   )rO   s   "rD   rP   SystemDependency.__annotate__  2      S } >Q *6:rC   c                	J   < \         SV `  \        R 4      W#VR7       Wn        R# )r~   r  NrW  rV   r   r   rU   r   r  r   r(   r   s   &&&&&rD   rV   SystemDependency.__init__  s"    +H5sXV	rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r1    s      s rC   c                 	    R # )r~   r;   r;   rC   rD   r  SystemDependency.log_tried  s    rC   r  rS   
r<   r=   r>   r?   r@   rV   r  r  rB   r  r  s   @rD   r.  r.    s$    7 
  rC   r.  c                  L   a  ] tR tRtRtRR V 3R lllt]R R l4       tRtV ;t	# )	BuiltinDependencyi  z.Dependency base for Builtin type dependencies.c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r0  r;   )rO   s   "rD   rP   BuiltinDependency.__annotate__  r2  rC   c                	J   < \         SV `  \        R 4      W#VR7       Wn        R# )r}   r  Nr4  r5  s   &&&&&rD   rV   BuiltinDependency.__init__  s"    +I6hW	rC   c                   V ^8  d   QhRR/# r   r;   )rO   s   "rD   rP   r>    s      s rC   c                 	    R # )r}   r;   r;   rC   rD   r  BuiltinDependency.log_tried  s    rC   r  rS   r:  r  s   @rD   r<  r<    s$    8 
  rC   r<  )r~   r   r   )F__conditional_annotations__
__future__r   r3  r  r   r   typingrx   r   enumr   r  r   r   r)  r   r   r	   r
   r   r   optionsr   ry   typing_extensionsr   r   r   compilers.compilersr   r  r   interpreterbaser   r  r   r   r   r   r   r   r   r   interpreter.type_checkingr   r   rA   r   _MissingCompilerBaser   rG   rI   r+   NewTyper#   r   r   rH  r  r  r  r  r  r  r  r&  r  r.  r<  )rD  s   @rD   <module>rO     sF   # "  	       " c c  ?????.)2   @$%GHKH iu  D $!>. >* 8 & YY3S9 h hTp pdT Tn (( (V *.6	9$,) * rC   