+
    UBidO                      a  0 t $ ^ RIHt  ^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ^RIH
t
 ^ RIHt ^RIHt ^ RIHt ]P"                  '       d   ^R	IHt ^R
IHt ^RIHt M]tRR.RR.RR.RR.RR.RR.RR.RR.RR/	tR]R&   RR.RR.RR.RR.RR.RR.RR.RR.RR.RR/
tR]R&   R. RR.R . R!R".R#R$.R%R$R&.R'R"R&./tR(]R)&    ! R* R+]]P<                  R,7      t ! R- R.]4      t  ! R/ R0]4      t!R# )1    )annotationsN)arglist)mesonlib)mlog)CompileCheckMode)	OptionKey)ClangClDynamicLinker)BuildTarget)
Dependency)CLikeCompilermmxz	/arch:SSEssesse2z
/arch:SSE2sse3z	/arch:AVXsse41sse42avxavx2z
/arch:AVX2neonz$T.Dict[str, T.Optional[T.List[str]]]vs32_instruction_set_argsssse3vs64_instruction_set_argsplain0/Odg1z/O12/O23/GwsT.Dict[str, T.List[str]]msvc_optimization_argsc            
         ] tR t^Ft$ RtR.tR.t]P                  R.,           t	. t
R]R&   R. RR	.R
R.RR.RR./tR]R&   . RfOtR. RR.RR.RR.RR./tR]R&   R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/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR< R= lt R> R? lt!R@ RA lt"RB RC lt#]$RD RE l4       t%]$RF RG l4       t&RH RI lt'RJ RK lt(RL RM lt)RN RO lt*RgRP RQ llt+RR RS lt,RT RU lt-RV RW lt.RX RY lt/RZ R[ lt0R\ R] lt1]2R^ R_ l4       t3R` Ra lt4Rb Rc lt5Rdt6Re# )hVisualStudioLikeCompilera  A common interface for all compilers implementing an MSVC-style
interface.

A number of compilers attempt to mimic MSVC, with varying levels of
success, such as Clang-CL and ICL (the Intel C/C++ Compiler for Windows).
This class implements as much common logic as possible.
z/W3r   execinfoT.List[str]internal_libsnonemdz/MDmddz/MDdmtz/MTmtdz/MTdr#   crt_argsr   r   z/W2r   r    z/W4
everythingz/Wall	warn_argsFc                   V ^8  d   QhRR/#    targetstr )formats   "M/usr/lib/python3.14/site-packages/mesonbuild/compilers/mixins/visualstudio.py__annotate__%VisualStudioLikeCompiler.__annotate__n   s     + +s +    c                	   R Uu0 uF  p\        V4      kK  	  upV n        Wn        RV9   ;'       g    RV9   V n        RV9   d	   RV n        M3RV9   d	   RV n        M$RV9   d	   RV n        MRV9   d	   RV n        MWn        \
        P                  ! V P                  R4      '       d%   V P                  P                  \        R	4      4       V P                  f   Q hV P                  V P                  n        R
# u upi )b_pchx64x86_6486x86aarch64arm64armz>=19.28.29910
b_sanitizeN)r>   b_ndebugb_vscrt)
r   base_optionsr5   is_64machiner   version_compareversionaddlinker)selfr5   os   && r9   __init__!VisualStudioLikeCompiler.__init__n   s    3ST3SaYq\3STvo>>8v+=
v DLV^ DL& "DLf_ DL!L##DLL/BB!!)L"9:{{&&&"ll# Us   C8c                   V ^8  d   QhRR/# r4   returnr(   r7   )r8   s   "r9   r:   r;      s     ' ' 'r<   c                	6    V P                   P                  4       # N)always_argscopyrP   s   &r9   get_always_args(VisualStudioLikeCompiler.get_always_args   s    $$&&r<   c                   V ^8  d   QhRR/# r4   rV   r6   r7   )r8   s   "r9   r:   r;      s       r<   c                	    R # )pchr7   r[   s   &r9   get_pch_suffix'VisualStudioLikeCompiler.get_pch_suffix   s    r<   c                    V ^8  d   QhRRRR/# )r4   namer6   rV   r7   )r8   s   "r9   r:   r;      s        r<   c                	    \         P                  P                  V4      P                  R 4      RR pVP	                  V P                  4       4       R P                  V4      pV# ).N)ospathbasenamesplitappendrb   join)rP   re   choppedpchnames   &&  r9   get_pch_name%VisualStudioLikeCompiler.get_pch_name   sP    ''""4(..s3CR8t**,-((7#r<   c                    V ^8  d   QhRRRR/# r4   headerr6   rV   r7   )r8   s   "r9   r:   r;      s     " " " "r<   c                	    \         hrX   )NotImplementedErrorrP   ru   s   &&r9   get_pch_base_name*VisualStudioLikeCompiler.get_pch_base_name   s    !!r<   c               $    V ^8  d   QhRRRRRR/# )r4   pch_dirr6   ru   rV   r(   r7   )r8   s   "r9   r:   r;      s&     T T TS T[ Tr<   c                	    V P                  V4      pV P                  V4      pR V,           RV,           R\        P                  P	                  W4      ,           .# )z/FIz/Yu/Fp)ry   rq   ri   rj   rn   )rP   r|   ru   baserp   s   &&&  r9   get_pch_use_args)VisualStudioLikeCompiler.get_pch_use_args   sI    %%f-##F+edlEBGGLL4R,RSSr<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      + r<   c                	    R .# )/EPr7   r[   s   &r9   get_preprocess_only_args1VisualStudioLikeCompiler.get_preprocess_only_args   	    wr<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      [ r<   c                	
    R R.# )r   z/Pr7   r[   s   &r9   get_preprocess_to_file_args4VisualStudioLikeCompiler.get_preprocess_to_file_args   s    t}r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      { r<   c                	    R .# )z/cr7   r[   s   &r9   get_compile_only_args.VisualStudioLikeCompiler.get_compile_only_args   s	    vr<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      + r<   c                	
    R R.# )r   z/Oi-r7   r[   s   &r9   get_no_optimization_args1VisualStudioLikeCompiler.get_no_optimization_args   s    vr<   c               $    V ^8  d   QhRRRRRR/# )r4   r5   T.Optional[BuildTarget]valuer(   rV   r7   )r8   s   "r9   r:   r;      s#     1 1-D 1[ 1]h 1r<   c                	@    V'       g   V# R RP                  V4       2.# )z/fsanitize=,)rn   )rP   r5   r   s   &&&r9   sanitizer_compile_args/VisualStudioLikeCompiler.sanitizer_compile_args   s#    Lchhuo./00r<   c                    V ^8  d   QhRRRR/# )r4   
outputnamer6   rV   r(   r7   )r8   s   "r9   r:   r;      s     $ $# $+ $r<   c                	    V P                   R 8X  d   RV,           .# VP                  R4      '       d   RV,           .# RV,           .# )PREPROCESSORz/Fiz.exez/Fe/Fo)modeendswith)rP   r   s   &&r9   get_output_args(VisualStudioLikeCompiler.get_output_args   sI    99&J&''v&&J&''
"##r<   c                    V ^8  d   QhRRRR/# )r4   is_debugboolrV   r(   r7   )r8   s   "r9   r:   r;      s      t  r<   c                	    V'       d   R .# . # )z/Z7r7   )rP   r   s   &&r9   get_debug_args'VisualStudioLikeCompiler.get_debug_args   s    7NIr<   c                    V ^8  d   QhRRRR/# )r4   optimization_levelr6   rV   r(   r7   )r8   s   "r9   r:   r;      s        r<   c                	    \         V,          p\        P                  ! V P                  R 4      '       d   V Uu. uF  q3R8w  g   K  VNK  	  ppV# u upi )z<18.0r!   )r$   r   rL   rM   )rP   r   argsargs   &&  r9   get_optimization_args.VisualStudioLikeCompiler.get_optimization_args   sH    %&89##DLL'::#'84C%<CC4D8 9s   AAc                    V ^8  d   QhRRRR/# r4   r   r(   rV   r7   )r8   s   "r9   r:   r;      s     C CK CK Cr<   c                	P    R .V Uu. uF  q"R 8w  g   K  VNK  	  up,           # u upi )z/linkr7   )rP   r   r   s   && r9   linker_to_compiler_args0VisualStudioLikeCompiler.linker_to_compiler_args   s'    y4B4C'>CC4BBBBs   ##c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;            k r<   c                	    . # rX   r7   r[   s   &r9   get_pic_args%VisualStudioLikeCompiler.get_pic_args       	r<   c               (    V ^8  d   QhRRRRRRRR/# )r4   ru   r6   sourcerp   rV   zT.Tuple[str, T.List[str]]r7   )r8   s   "r9   r:   r;      s/     K K3 K Kc KF_ Kr<   c                	    \         P                  P                  V4      ^ ,          R,           pVRV,           RV,           RV,           .3# )r   z.objz/Ycr~   r   )ri   rj   splitext)rP   ru   r   rp   objnames   &&&& r9   gen_pch_args%VisualStudioLikeCompiler.gen_pch_args   s>    ''""6*1-6%'/JJJr<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      k r<   c                	    R .# )z/openmpr7   r[   s   &r9   openmp_flags%VisualStudioLikeCompiler.openmp_flags   s
    {r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      s      ; r<   c                	    . # rX   r7   r[   s   &r9   openmp_link_flags*VisualStudioLikeCompiler.openmp_link_flags   r   r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;      r   r<   c                	    . # rX   r7   r[   s   &r9   thread_flags%VisualStudioLikeCompiler.thread_flags   r   r<   c                    V ^8  d   QhRRRR/# r   r7   )r8   s   "r9   r:   r;      s     - -{ -{ -r<   c                	t   . pV EF  pVR9   d   K  VP                  R4      '       d   RVR,          ,           pEMVVP                  R4      '       d   RVR,          ,           pEM-VP                  R4      '       d&   VR,          pW@P                  9   d   K  VR,           pMVP                  R	4      '       d:   VP                  R
4      '       d   RVR,          ,           pMRVR,          ,           pMVP                  R4      '       d:   VP                  R4      '       d   RVR,          ,           pMbRVR,          ,           pMQVR8X  d   EKE  VP                  R4      '       g   VP                  R4      '       g   VR8X  d    VP                  R4       VP	                  V4       EK  	  V#   \         d     L%i ; i)-mms-bitfields-pthread	-LIBPATH:	/LIBPATH:	   NN-Lr4   NN-l.lib-isystemz	-isystem=/I:   NNz
-idirafterz-idirafter=:   NN:
   NNz/source-charset:z/execution-charset:z/validate-charset-/utf-8>   r   r   )
startswithignore_libsremove
ValueErrorrm   )clsr   resultire   s   &&   r9   unix_args_to_native,VisualStudioLikeCompiler.unix_args_to_native   sj    A 22||K((!B%'d##!B%'d##u??* vAj))<<,,quAquAl++<<..qvAqvAj ,,122||$9::00MM(+ MM!U V  " s    F))F76F7c                    V ^8  d   QhRRRR/# r   r7   )r8   s   "r9   r:   r;     s     	 	{ 	{ 	r<   c                	Z   . pV F  pVP                  R4      '       d"   VP                  RVR,          ,           4       K;  VP                  R4      '       d@   \        P                  P                  V4      '       g   VP                  RV,           4       K  VP                  V4       K  	  V# )r   r   r   r   )r   r   )z.ar   )r   rm   r   ri   rj   isabs)r   r   r   r   s   &&  r9   native_args_to_unix,VisualStudioLikeCompiler.native_args_to_unix  sy     C~~899dSWn-n--bggmmC6H6HdSj)c"  r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;     s       r<   c                	    R .# )z/WXr7   r[   s   &r9   get_werror_args(VisualStudioLikeCompiler.get_werror_args  r   r<   c               $    V ^8  d   QhRRRRRR/# r4   rj   r6   	is_systemr   rV   r(   r7   )r8   s   "r9   r:   r;     s!      S T k r<   c                	(    VR 8X  d   RpRV,           .# ) rg   -Ir7   rP   rj   r   s   &&&r9   get_include_args)VisualStudioLikeCompiler.get_include_args  s    2:Dt}r<   c               $    V ^8  d   QhRRRRRR/# )r4   parameter_listr(   	build_dirr6   rV   r7   )r8   s   "r9   r:   r;     s#      [ ]` ep r<   c           	     	   \        V4       F  w  r4VR ,          R8X  g   VR ,          R8X  dV   VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kv  VR,          R8X  g   K  VR,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   K  	  V# ):Nr4   Nr   r   r   :Nr   Nr   r   )	enumerateri   rj   normpathrn   )rP   r   r   idxr   s   &&&  r9   &compute_parameters_with_absolute_paths?VisualStudioLikeCompiler.compute_parameters_with_absolute_paths  s    /FCu}"&'ebgg.>.>rww||IY[W\?].^&^#2+%&'ebgg.>.>rww||IY[W\?].^&^#	 0 r<   c               (    V ^8  d   QhRRRRRRRR/# 	r4   r   r(   coder6   r   r   rV   T.Tuple[bool, bool]r7   )r8   s   "r9   r:   r;   "  s0     X X+ XS X@P XUh Xr<   c                	d   V\         P                  8X  d   R MRpV P                  W!VR7      ;_uu_ 4       pVP                  ^ 8w  d   RVP                  3uuRRR4       # WEP
                  9   ;'       g    WEP                  9   '       * VP                  3uuRRR4       #   + '       g   i     R# ; i)40449002)
extra_argsr   FN)r   LINK_build_wrapper
returncodecachedstderrstdout)rP   r   r  r   warning_textps   &&&&  r9   has_arguments&VisualStudioLikeCompiler.has_arguments"  s    !%)9)>)>!>vF  T BBa||q ahh CB %0LLLHH4LMqxxW CBBBs   BB4BB/	c               $    V ^8  d   QhRRRRRR/# r4   rel_objr6   ra   r   rV   r(   r7   )r8   s   "r9   r:   r;   )  s!      # D [ r<   c                	t    VP                  R 4      RR pVR.,          pRR P                  V4      ,           .pV# )rg   Npdbz/Fdrh   )rl   rn   )rP   r  ra   pdbarrr   s   &&&  r9   get_compile_debugfile_args3VisualStudioLikeCompiler.get_compile_debugfile_args)  s>    s#CR(5'(()r<   c                    V ^8  d   QhRRRR/# r4   instruction_setr6   rV   zT.Optional[T.List[str]]r7   )r8   s   "r9   r:   r;   /  s     D D D@W Dr<   c                	~    V P                   '       d   \        P                  VR 4      # \        P                  VR 4      # rX   )rJ   r   getr   )rP   r!  s   &&r9   get_instruction_set_args1VisualStudioLikeCompiler.get_instruction_set_args/  s1    :::,00$GG(,,_dCCr<   c                    V ^8  d   QhRRRR/# )r4   rM   intrV   T.Optional[str]r7   )r8   s   "r9   r:   r;   4  s      # / r<   c                	&   VR 8  d   R# VR8  d   R# VR8  d   R# VR8  d   R# VR8  d   R	# VR
8  d   R# VR8  d   R# VR8  d   R# VR8  d   R# VR8  d   R# VR8  d   R# VR8  d   R# \         P                  ! RV P                  : 24       R# )i  z7.0ix  z7.1i  z8.0i@  z9.0i  z10.0i  z11.0il  z12.0iv  z14.0i  14.1i  z14.2i  z14.3i  z14.4z#Could not find toolset for version N)r   warningrM   rP   rM   s   &&r9   _calculate_toolset_version3VisualStudioLikeCompiler._calculate_toolset_version4  s    T>t^t^t^t^t^t^t^t^t^t^t^:4<<:JKLr<   c                   V ^8  d   QhRR/# r4   rV   r(  r7   )r8   s   "r9   r:   r;   P  s     8 8_ 8r<   c                	     \        R P                  V P                  P                  R4      R,          4      4      pT P                  T4      #   \         d     R# i ; i)r   rg   :r   r4   NN)r'  rn   rM   rl   r   r-  r,  s   & r9   get_toolset_version,VisualStudioLikeCompiler.get_toolset_versionP  sU    	"''$,,"4"4S"9#">?@G ..w77  		s   :A AAc                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;   X  s     7 7+ 7r<   c                	    R \         P                  9  d   . # \         P                  R ,          P                  \         P                  4      # )INCLUDE)ri   environrl   pathsepr[   s   &r9   get_default_include_dirs1VisualStudioLikeCompiler.get_default_include_dirsX  s1    BJJ&Izz)$**2::66r<   c               $    V ^8  d   QhRRRRRR/# )r4   crt_valr6   	buildtyperV   r(   r7   )r8   s   "r9   r:   r;   ]  s!     & &C &C &K &r<   c                	J    V P                  W4      pV P                  V,          # rX   )get_crt_valr/   )rP   r<  r=  s   &&&r9   get_crt_compile_args-VisualStudioLikeCompiler.get_crt_compile_args]  s!    ""76}}W%%r<   c                    V ^8  d   QhRRRR/# )r4   re   r6   rV   r  r7   )r8   s   "r9   r:   r;   a  s     9 9s 9/B 9r<   c                	    VR9   R3# )	dllimportF>   	dllexportrD  r7   )rP   re   s   &&r9   has_func_attribute+VisualStudioLikeCompiler.has_func_attributea  s     11588r<   c                   V ^8  d   QhRR/# r_   r7   )r8   s   "r9   r:   r;   g  s       r<   c                 	    R # )msvcr7   r7   r<   r9   get_argument_syntax,VisualStudioLikeCompiler.get_argument_syntaxf      r<   c                   V ^8  d   QhRR/# r4   rV   r   r7   )r8   s   "r9   r:   r;   j  s     @ @ @r<   c                N    V P                  4       pVe   V# V P                  4       # )z
Check if the compiler prefixes an underscore to global C symbols.

This overrides the Clike method, as for MSVC checking the
underscore prefix based on the compiler define never works,
so do not even try.
)$_symbols_have_underscore_prefix_list)_symbols_have_underscore_prefix_searchbin)rP   r   s   & r9   symbols_have_underscore_prefix7VisualStudioLikeCompiler.symbols_have_underscore_prefixj  s.     ::<M ==??r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r;   {  r   r<   c                	    . # rX   r7   r[   s   &r9   get_pie_args%VisualStudioLikeCompiler.get_pie_args{  r   r<   )rI   rJ   rK   r5   N)z/nologoz/showIncludesr   F)7__name__
__module____qualname____firstlineno____doc__std_warn_argsstd_opt_argsr   UNIXY_COMPILER_INTERNAL_LIBSr   r)   __annotations__r/   rY   r1   INVOKES_LINKERrR   r\   rb   rq   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   classmethodr   r   r   r   r  r  r  r$  r-  r2  r9  r@  rF  staticmethodrK  rS  rW  __static_attributes__r7   r<   r9   r&   r&   F   s    GM7L66*EK!#M;# 	ugxugx*H&  9KReWeWeWwi+I'  N+*'"T
1
$CK - -^ 	 	XD
887
&9
  @" r<   r&   )	metaclassc                     a  ] tR tRtRtRtR V 3R lltRR V 3R llltR R	 ltR
 V 3R llt	R R lt
R R ltRtV ;t# )MSVCCompileri~  z$Specific to the Microsoft Compilers.rJ  c                   V ^8  d   QhRR/# r3   r7   )r8   s   "r9   r:   MSVCCompiler.__annotate__  s     N Ns Nr<   c                	   < \         SV `  V4       \        P                  ! V P                  R 4      '       d?   RV P
                  9   d,   V P
                   Uu. uF  q"R8w  g   K  VNK  	  upV n        R# R# R# u upi )z<19.00r   N)superrR   r   rL   rM   rY   )rP   r5   r	__class__s   && r9   rR   MSVCCompiler.__init__  sh     
 ##DLL(;;DL\L\@\+/+;+;M+;aH}+;MD A];Ms   A8$A8c               $    V ^8  d   QhRRRRRR/# r  r7   )r8   s   "r9   r:   rk    s!     
 
# 
D 
[ 
r<   c                	   < \         SV `  W4      pV'       d2   \        P                  ! V P                  R 4      '       d   R.V,           pV# )z>=18.0z/FS)rm  r  r   rL   rM   )rP   r  ra   r   ro  s   &&& r9   r  'MSVCCompiler.get_compile_debugfile_args  s=    w1'? 8++DLL(CC7T>Dr<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   rk    s          r<   c                	    V P                   # rX   rY   r[   s   &r9   r\   MSVCCompiler.get_always_args  s    r<   c                    V ^8  d   QhRRRR/# r   r7   )r8   s   "r9   r:   rk    s     A A A@W Ar<   c                	   < V P                   P                  R 4      ^ ,          R8X  d
   VR8X  d   R# \        SV `  V4      # )rg   16r   N)rM   rl   rm  r$  )rP   r!  ro  s   &&r9   r$  %MSVCCompiler.get_instruction_set_args  s;    <<c"1%-/U2J w/@@r<   c                    V ^8  d   QhRRRR/# rt   r7   )r8   s   "r9   r:   rk    s     ( ( ( (r<   c                	@    \         P                  P                  V4      # rX   )ri   rj   rk   rx   s   &&r9   ry   MSVCCompiler.get_pch_base_name  s    ww''r<   c                   V ^8  d   QhRR/# rO  r7   )r8   s   "r9   r:   rk    s       r<   c                	    R # )Tr7   r[   s   &r9   should_link_pch_object#MSVCCompiler.should_link_pch_object  s    r<   rv  rY  )rZ  r[  r\  r]  r^  idrR   r  r\   r$  ry   r  rf  __classcell__ro  s   @r9   ri  ri  ~  sA    .	BN N
 
 A A(
 r<   ri  c                     a  ] tR tRtRtRtR V 3R lltR V 3R lltR R	 ltR
 R lt	R R lt
]R V 3R ll4       tR V 3R lltR R ltR V 3R lltRRR^ RR/R V 3R llltRRR^ RRRR/R R lltR tV ;t# )!ClangClCompileri  zSpecific to Clang-CL.zclang-clc                   V ^8  d   QhRR/# r3   r7   )r8   s   "r9   r:   ClangClCompiler.__annotate__  s     	, 	,s 	,r<   c           	     	,  < \         SV `  V4       V P                  P                  \	        R 4      \	        R4      \	        R4      \	        R4      \	        R4      04       V P
                  P                  R4       V P
                  P                  R4       R# )b_lto_threadsb_lto
b_lto_modeb_thinlto_cacheb_thinlto_cache_dirr"   sxN)rm  rR   rI   updater   can_compile_suffixesrN   )rP   r5   ro  s   &&r9   rR   ClangClCompiler.__init__  s{       '7);Y|=TV_`qVr,-/	0
 	!!%%c*!!%%d+r<   c               (    V ^8  d   QhRRRRRRRR/# r  r7   )r8   s   "r9   r:   r    s*     7 7+ 7S 7@P 7Uh 7r<   c                	d   < V\         P                  8w  d   VR R.,           p\        SV `  WV4      # )z-Werror=unknown-argumentz-Werror=unknown-warning-option)r   r  rm  r  )rP   r   r  r   ro  s   &&&&r9   r  ClangClCompiler.has_arguments  s5    #(((57WXXDw$T66r<   c                   V ^8  d   QhRR/# r0  r7   )r8   s   "r9   r:   r    s      _ r<   c                	    R # )r*  r7   r[   s   &r9   r2  #ClangClCompiler.get_toolset_version  rM  r<   c                    V ^8  d   QhRRRR/# rt   r7   )r8   s   "r9   r:   r    s        r<   c                	    V# rX   r7   rx   s   &&r9   ry   !ClangClCompiler.get_pch_base_name  s    r<   c               $    V ^8  d   QhRRRRRR/# r   r7   )r8   s   "r9   r:   r    s&     J JS JT Jk Jr<   c                	L    VR 8X  d   RpV'       d   RV,           .# RV,           .# )r   rg   z/clang:-isystemr   r7   r   s   &&&r9   r    ClangClCompiler.get_include_args  s*    2:D-6!D()ITD[MIr<   c               $    V ^8  d   QhRRRRRR/# )r4   rO   r6   rM   rV   r(   r7   )r8   s   "r9   r:   r    s!     8 8S 83 8; 8r<   c                	6   < VR 8X  d   R.# \         SV `  W4      # )zlld-linkz-fuse-ld=lld-link)rm  use_linker_args)r   rO   rM   ro  s   &&&r9   r  ClangClCompiler.use_linker_args  s&     Z'((w&v77r<   c                    V ^8  d   QhRRRR/# r   r7   )r8   s   "r9   r:   r    s     _ _K _K _r<   c           	     	   < \         SV `  V P                  P                  R 4      \         ST `  V Uu. uF$  q"P                  R4      '       d
   VR,          MTNK&  	  up4      ,           # u upi )r   z-Wl,:   NN)rm  r  rO   r  r   r   )rP   r   flagro  s   && r9   r   'ClangClCompiler.linker_to_compiler_args  s     w&t{{~~r:UW=\  Y]  ^^  Y]  QUjyjy  {A  kB  kB^bce^f  HL  _L  Y]  ^^  >_  _  	_  ^^s   *A)
c                    V ^8  d   QhRRRR/# )r4   depz'Dependency'rV   r(   r7   )r8   s   "r9   r:   r    s     
* 
*| 
* 
*r<   c                	    VP                  4       R 8X  dO   . pVP                  4        F6  pVP                  R4      '       d   VRV,           .,          pK-  W#.,          pK8  	  V# VP                  4       # )systemr   z/clang:)get_include_typeget_compile_argsr   )rP   r  	convertedr   s   &&  r9   get_dependency_compile_args+ClangClCompiler.get_dependency_compile_args  sk    !X-%'I))+<<
++)a-0I$I	 ,
 ''))r<   c                   V ^8  d   QhRR/# rU   r7   )r8   s   "r9   r:   r    s     2 2; 2r<   c                	   < V P                  R . 4      pVf   \        P                  ! R4      h\        SV `  4       V,           # )libompzCould not find libomp)find_libraryr   MesonBugExceptionrm  r   )rP   libsro  s   & r9   r   !ClangClCompiler.openmp_link_flags  s?      2.<,,-DEEw(*T11r<   r5   Nthreadsr   defaultc               (    V ^8  d   QhRRRRRRRR/# )	r4   r5   r   r  r'  r   r6   rV   r(   r7   )r8   s   "r9   r:   r    s,      .E WZ #&7Br<   c               	:  < . pVR 8X  dd   \        V P                  \        4      '       g.   \        P                  ! RV P                  P
                   24      hVP                  RV 24       V# VR8X  g   Q R4       hVP                  \        SV `%  WR7      4       V# )thinz-LLVM's ThinLTO only works with lld-link, not z-flto=r  z#someone forgot to wire something up)r5   r  )

isinstancerO   r	   r   MesonExceptionr  rm   extendrm  get_lto_compile_args)rP   r5   r  r   r   ro  s   &$$$ r9   r  $ClangClCompiler.get_lto_compile_args  s    6>dkk+?@@--0]^b^i^i^l^l]m.nooKK&(  9$K&KK$KK4F4TUr<   thinlto_cache_dirc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r4   r5   r   r  r'  r   r6   r  r(  rV   r(   r7   )r8   s   "r9   r:   r    s4     
 
+B 
TW 
 #
DS
_j
r<   c               	    . pVR 8X  d/   Ve+   VP                  V P                  P                  V4      4       V^ 8  d   VP                  RV 24       V# )r  z	/threads:)r  rO   get_thinlto_cache_argsrm   )rP   r5   r  r   r  r   s   &$$$$ r9   get_lto_link_args!ClangClCompiler.get_lto_link_args  sQ    6>/;KK::;LMNQ; KK)G9-.r<   r7   )rZ  r[  r\  r]  r^  r  rR   r  r2  ry   r   rd  r  r   r  r   r  r  rf  r  r  s   @r9   r  r    s    	B	, 	,7 7
J
 8 8_ _

*2 2 ]^ )2 
T 
Z[ 
&/
VZ
 
r<   r  )"__conditional_annotations__
__future__r   abcri   typingTr   r   r   r   mesonbuild.compilers.compilersr   optionsr   mesonbuild.linkers.linkersr	   TYPE_CHECKINGbuildr
   dependenciesr   cliker   Compilerobjectr   rb  r   r$   ABCMetar&   ri  r  )r  s   @r9   <module>r     se  
 # "  	     ;   ;???$*0 H 
K=	K=
\N
[Mk]k]	K=
\N
D
C ? 
 
K=	K=
[M
[Mk]k]k]	K=
\N
DC ?  R%%%%%4 0 vx3;; vp	.+ .`X. Xr<   