+
    UBi                    z  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^RI	H
t
 ^RI	Ht ^RIHtHtHtHtHt ^RIHtHt ]P*                  '       d%   ^RIHt ^RI
Ht ^R	IHt ^R
IHt ^RIHt ^RIHt R. RR.RR.RR.RRR.RR.RR./t R]!R&   R. RR./t"R]!R &    ! R! R"]PF                  4      t$ ! R# R$]4      t%R# )%    )annotationsN)options)mlog)EnvironmentException
Popen_safe
is_windowsLibTypeversion_compare)CompilerCompileCheckMode)BuildTarget)MutableKeyedOptionDictType)
Dependency)Environment)DynamicLinker)MachineChoiceplain0-Gg-O01z-O12z-O2	-lineinfo3-O3szT.Dict[str, T.List[str]]cuda_optimization_argsFT-gzT.Dict[bool, T.List[str]]cuda_debug_argsc                      ] tR t^-tRtRtRtR# )Phasecompilerlinker N)__name__
__module____qualname____firstlineno__COMPILERLINKER__static_attributes__r%       >/usr/lib/python3.14/site-packages/mesonbuild/compilers/cuda.pyr"   r"   -   s    HFr-   r"   c                  B  a ] tR t^3tRtRt0 RkRkRkRkRkRkR	kR
kRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkR kR!kR"kR#kR$kR%kR&kR'kR(kR)kR*kR+kR,kR-kR.kR/kR0kR1kR2kR3kR4kR5kR6kR7kR8kR9kR:kR;kR<kR=kR>kR?kR@kRAkRBkRCkRDkREkRFkRGkRHkRIkRJkRKkRLkRMkRNkROkRPkRQkRRkRSkRTkRUkRkRkRVkRWkRXkRYkRZkR[kR\kR]kR^kR_kR`kRakRbkRckRdkRekRfkRgkRhkRikRjkRkkRlkRmkRnkRokRpkRqkRrkRskRtkRukRvkRwkRxkRykt/ RzR{bR|R}bR~RbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRb/ RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbC/ RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbCRRRR/Ct]P                  4        U Uu/ uF  w  rWbK	  	  upp t	Rt
ERJR V3R lllt]ERKR R ll4       t]R R l4       t]]P                   R3R R ll4       t]P                   3R R lltR R ltR R ltR R ltRRRR/R R lltRtRtRtR V3R lltERLER  ER lltERLER ER lltERLER ER lltER ER ltER ER	 ltER
 ER lt ER ER lt!ER ER lt"ER ER lt#ER ER lt$ER ER lt%ER ER lt&ER ER lt'ERMER ER llt(ER ER lt)ER ER  lt*ER! ER" lt+ERLER# ER$ llt,ER% ER& lt-ER' ER( lt.ER) ER* lt/ER+ ER, lt0ER- ER. lt1ER/ ER0 lt2]3Ph                  RER3ER1 ER2 llt5ER3 ER4 lt6ER5 ER6 lt7ER7 V3ER8 llt8ER9 V3ER: llt9ER; V3ER< llt:ERLER= ER> llt;ER? ER@ lt<ERA ERB lt=ERC ERD lt>ERE ERF lt?ERG ERH lt@ERItAV;tB# u upp i (N  CudaCompilerz	-Xlinker=cudaz--objdir-as-tempdirz-objtempz--generate-dependency-targetsz-MPz--allow-unsupported-compilerz-allow-unsupported-compilerz--linkz--libz-libz--device-linkz-dlinkz
--device-cz-dcz
--device-wz-dwz--cudaz-cudaz	--compile-cz--fatbinz-fatbinz--cubinz-cubinz--ptxz-ptxz--preprocessz-Ez--generate-dependenciesz-Mz!--generate-nonsystem-dependenciesz-MMz$--generate-dependencies-with-compile-MDz.--generate-nonsystem-dependencies-with-compilez-MMD--runz	--profilez-pgz--debugr   z--device-debugr   z--extensible-whole-programz-ewpz--generate-line-infor   z--dlink-time-optz-dltoz--no-exceptionsz-noehz--sharedz-sharedz!--no-host-device-initializer-listz-nohdinitlistz--expt-relaxed-constexprz-expt-relaxed-constexprz--extended-lambdaz-extended-lambdaz--expt-extended-lambdaz-expt-extended-lambdaz--m32z-m32z--m64z-m64z"--forward-unknown-to-host-compilerz!-forward-unknown-to-host-compilerz --forward-unknown-to-host-linkerz-forward-unknown-to-host-linkerz--dont-use-profilez-noprofz--dryrunz-dryrunz	--verbosez-vz--keepz-keepz--save-tempsz-save-tempsz--clean-targetsz-cleanz--no-align-doublez--no-device-linkz-nodlinkz--use_fast_math-use_fast_mathz--extra-device-vectorizationz-extra-device-vectorizationz--compile-as-tools-patchz-astoolspatchz--keep-device-functionsz-keep-device-functionsz--disable-warnings-wz--source-in-ptxz-src-in-ptxz
--restrictz	-restrictz--Wno-deprecated-gpu-targetsz-Wno-deprecated-gpu-targetsz--Wno-deprecated-declarationsz-Wno-deprecated-declarationsz
--Wreorderz	-Wreorderz--Wdefault-stream-launchz-Wdefault-stream-launchz--Wext-lambda-captures-thisz-Wext-lambda-captures-thisz--display-error-numberz-err-noz--resource-usagez
-res-usagez--helpz-hz	--versionz-Vz--list-gpu-codez-code-lsz--list-gpu-archz-arch-lsz--output-file-oz--pre-include-includez	--library-lz--define-macro-Dz--undefine-macro-Uz--include-path-Iz--system-include-isystemz--library-path-Lz--output-directoryz-odirz--dependency-output-MFz--compiler-bindirz-ccbinz--archiver-binaryz-arbinz--cudart-cudartz--cudadevrtz
-cudadevrtz--libdevice-directoryz-ldirz--target-directoryz-target-dirz--optimization-infoz	-opt-infoz
--optimize-Oz--ftemplate-backtrace-limitz-ftemplate-backtrace-limitz--ftemplate-depthz-ftemplate-depthz--xz-xz--std-stdz	--machine-mz--compiler-options
-Xcompilerz--linker-optionsz-Xlinkerz--archive-optionsz	-Xarchivez--ptxas-optionsz-Xptxasz--nvlink-optionsz-Xnvlinkz	--threads-tz
--keep-dirz	-keep-dirz
--run-argsz	-run-argsz--input-drive-prefixz-idpz--dependency-drive-prefixz-ddpz--drive-prefixz-dpz--dependency-target-name-MTz--default-streamz-default-streamz--gpu-architecturez-archz
--gpu-codez-codez--generate-codez-gencodez--relocatable-device-codez-rdcz	--entriesz-ez--maxrregcountz-maxrregcountz--ftzz-ftzz
--prec-divz	-prec-divz--prec-sqrtz
-prec-sqrtz--fmadz-fmadz--Werrorz-Werrorz--diag-errorz-diag-errorz--diag-suppressz-diag-suppressz--diag-warnz
-diag-warnz--options-filez-optfz--timez-timez--qpp-configz-qpp-confignvccNc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )   ccacheT.List[str]exelistversionstrfor_machiner   host_compilerr   envr   r$   zT.Optional['DynamicLinker']full_versionT.Optional[str]r%   )formats   "r.   __annotate__CudaCompiler.__annotate__   sU     N N{ N[ N3 N]j N (N/:N4N  /Nr-   c	                	  < \         SV `  WW4WgVR 7       WPn        VP                  V n        VP                  P                  4        U	U
u/ uF&  w  rWP                  \        R V
 4       4      4      bK(  	  up
p	V n        V P                  P                  4        Uu. uF  pRV,           NK  	  upV n	        \        V P                  R4      V n        R# u up
p	i u upi ))r$   rR   c              3  6   "   T F  qR 8w  g   K  Vx  K  	  R# 5i)z
-WpedanticNr%   ).0fs   & r.   	<genexpr>(CudaCompiler.__init__.<locals>.<genexpr>   s     +Ru!\@QAAus   
-Xcompiler=z>=12.9N)super__init__rP   base_options	warn_argsitems_to_host_flagslistget_werror_argshost_werror_argsr
   rM   debug_macros_available)selfrJ   rL   rM   rO   rP   rQ   r$   rR   levelflagsx	__class__s   &&&&&&&&&   r.   r_   CudaCompiler.__init__   s     	'amn*)66 !. 7 7 = = ?
 ? &&t+Ru+R'RSS ?
 =A<N<N<^<^<` a<`q!2!2<` a&5dllH&M#
 !bs   	,CCTc               $    V ^8  d   QhRRRRRR/# )rI   argrN   listmodeboolreturnr%   )rT   s   "r.   rU   rV      s!     8! 8! 8!t 8!s 8!r-   c                   RpRpRpRpWC,           V,           p\        \        P                  R,           4      pWQ9  g	   V'       g   W19  d2   \        V4      P                  V4      '       d   W1,           V,           # V# VP	                  V4       U	u. uF  qP                  V	4      NK  	  p
p	\        V
 U	u. uF  qV.NK  	  up	RR . 4      p
RP                  V
4      # R.p
Rp\        V4      pV F  pW8X  d   V'       g   V
P                  R4       K$  W8X  d   V
R;;,          V,          uu&   V'       * pKH  W8X  d"    V
R;;,          \        V4      ,          uu&   Ko  V
R;;,          V,          uu&   K  	  V
 U	u. uF  qP                  V	RR	7      NK  	  p
p	R
P                  V
4      # u up	i u up	i   \         d      KK  i ; iu up	i )a  
Shield an argument against both splitting by NVCC's list-argument
parse logic, and interpretation by any shell.

NVCC seems to consider every comma , that is neither escaped by \ nor inside
a double-quoted string a split-point. Single-quotes do not provide protection
against splitting; In fact, after splitting they are \-escaped. Unfortunately,
double-quotes don't protect against shell expansion. What follows is a
complex dance to accommodate everybody.
'",\z"$`\N F)rp   z\,)setstring
whitespaceintersectionsplit_shield_nvcc_list_argsumjoiniterappendnextStopIteration)clsro   rp   SQDQCMBSDQSQquotabler   linstringargitcs   &&&           r.   r   "CudaCompiler._shield_nvcc_list_arg   s    uRxv((01=} s8((226"9$J <?99R=I=a..q1=IA.AqTA.s3R8wwqz! AHIE78HHRLWbEQJE#+|HW"e, bEQJE   HIIq!**1u*=qAI::a= 5 J." )  Js$   F(4F-=F2:G2GGc                    V ^8  d   QhRRRR/# )rI   rj   rK   rr   r%   )rT   s   "r.   rU   rV     s     . . . .r-   c                "  aa	 \        V4      ^8:  d   V# \        V4      p. pR R lo	R R loR VV	3R llpR V3R llpR	pV F  pV! V4      '       g   R	pVP                  V4       K&  V'       d3   VR;;,          R
,          uu&   VR;;,          V! Wr4      ,          uu&   K`  S	! V4      '       d-   RpVP                  V4       VP                  V! Wr4      4       K  S! V4      '       d   RpVP                  V4       K  \        R4      h	  V# )z
The flags to NVCC gets exceedingly verbose and unreadable when too many of them
are shielded with -Xcompiler. Merge consecutive -Xcompiler-wrapped arguments
into one.
c                    V ^8  d   QhRRRR/# rI   flagrN   rr   rq   r%   )rT   s   "r.   rU   /CudaCompiler._merge_flags.<locals>.__annotate__  s     	( 	(S 	(T 	(r-   c                    V R 8H  # )rD   r%   r   s   &r.   is_xcompiler_flag_isolated=CudaCompiler._merge_flags.<locals>.is_xcompiler_flag_isolated  s    <''r-   c                    V ^8  d   QhRRRR/# r   r%   )rT   s   "r.   rU   r     s     	2 	2# 	2$ 	2r-   c                $    V P                  R 4      # r]   )
startswithr   s   &r.   is_xcompiler_flag_glued:CudaCompiler._merge_flags.<locals>.is_xcompiler_flag_glued  s    ??=11r-   c                    V ^8  d   QhRRRR/# r   r%   )rT   s   "r.   rU   r     s     	U 	UC 	UD 	Ur-   c                4   < S! V 4      ;'       g	    S! V 4      # Nr%   )r   r   r   s   &r.   is_xcompiler_flag4CudaCompiler._merge_flags.<locals>.is_xcompiler_flag  s    -d3TT7Nt7TTr-   c               $    V ^8  d   QhRRRRRR/# )rI   r   rN   flagitzT.Iterator[str]rr   r%   )rT   s   "r.   rU   r     s!     	 	C 	 	S 	r-   c                x   < S! V 4      '       d   V \        R 4      R #  \        V4      #   \         d     R# i ; i)r]   Nrx   )lenr   r   )r   r   r   s   &&r.   get_xcompiler_val4CudaCompiler._merge_flags.<locals>.get_xcompiler_val  sB    &t,,C./00<'$ s   
* 99Frv   Tz6-Xcompiler flag merging failed, unknown argument form!ry   )r   r   r   
ValueError)
r   rj   r   xflagsr   r   ingroupr   r   r   s
   &&      @@r.   _merge_flagsCudaCompiler._merge_flags  s     u:?Le	(	2	U 	U	 	 D$T**d#r
c!
r
/==
+D11d#/=>(..d# !YZZ   r-   c               (    V ^8  d   QhRRRRRRRR/# )rI   rj   rK   phaser"   default_include_dirsT.Optional[T.List[str]]rr   r%   )rT   s   "r.   rU   rV   6  s8     s( s({ s(5 s(  jA s(  MX s(r-   c                	   . p\        V4      pV EF  pW`P                  9   d   VP                  V4       K'  VR,          R9  d   VP                  V4       KH  VR,          R8X  dP   VP                  R4      '       d   RMRVP                   R2pRV9   d   R	MRpVP                  V V V V 24       K  \        V4      ^8  dd   V^ ,          R
8X  dV   V^,          R9   dH   VR,          R8X  d    \        V4      p	M!VR,          R8X  d   VR,          p	M	VR,          p	VR,          pEMW`P                  9   g   W`P                  9   d    \        V4      p	EMVP                  R^4      ^ ,          V P                  9   g)   VP                  R^4      ^ ,          V P                  9   d   VP                  R^4      w  riEMIVP                  R4      '       d#   VR,          P                  4       p	VR,          pEMVR8X  d+   VP                  R4       VP                  RV,           4       MVR8X  dM   VP                  R4       VP                  R4       VP                  R4       VP                  RV,           4       MVR8X  d+   VP                  R4       VP                  RV,           4       MXVR8X  d+   VP                  R4       VP                  RV,           4       M'VP                  RV P                  V4      ,           4       EK  X	f   Q hV P                  P                  Wf4      pVR!9   d   \        V4      ^8X  d*   VP                  W`P                  V	4      ,           4       EKV  VR8X  d   Ve
   W9   d   EKj  VP                  V4       VP                  V P                  V	4      4       EK  VR8X  d   V	R8X  dN   VP                  R4       VP                  R4       VP                  R 4       VP                  Wi,           4       EK  V	R"9   d,   VP                  R 4       VP                  Wi,           4       EK+  VP                  Wi,           4       EKE  VR#9   d   VP                  Wi,           4       EKf  VR$9   d#   VP                  VR,           V	,           4       EK  VP                  V4       VP                  V	4       EK  	  V P                  V4      #   \         d     ELi ; i  \         d     ELi ; i)%z
Translate generic "GCC-speak" plus particular "NVCC-speak" flags to NVCC flags.

NVCC's "short" flags have broad similarities to the GCC standard, but have
gratuitous, irritating differences.
:N   Nz-//z.arx   z-X=rv   ru   -IDULlmOxmte:rI      N:r   NN:rI   NN:NrI   Nr=   :   NN:Nr   Nz-ffast-mathr5   r]   z-fno-fast-mathz
-ftz=falsez-prec-div=truez-prec-sqrt=truez-freciprocal-mathz-prec-div=falsez-fno-reciprocal-mathrA   fastr   rD   >   r<   r>   r9   r8   r=   >   r   r   z>   r:   r;   rC   rE   >   rB   )r   _FLAG_PASSTHRU_NOARGSr   endswithvaluer   r   r   _FLAG_LONG2SHORT_WITHARGS_FLAG_SHORT2LONG_WITHARGSr~   r   stripr   getr   )
r   rj   r   r   r   r   r   prefixwrapvals
   &&&&      r.   to_host_flags_baseCudaCompiler.to_host_flags_base5  s    eDf 000d# Bxt#d#bS  $}}T22"U[[M8K!TksrtfTF;<TaDGsNtAw-7O 9?"6l #Y#%r(Cr(CBx666999v,C C#A&#*G*GGJJsA&q)S-J-JJ !JJsA.	c,,2hnn&Bx =(MM"23MM-"45--MM,/MM"23MM"34MM-"4500MM"34MM-"4533MM"23MM-"45MM-0I0I$0O"OP?"? 0044T@DAA t9>MM$'@'@'E"EFZ',@,LQTQl MM$'MM#";";C"@A&=MM%(MM"23MM,/MM$(+O+MM,/MM$(+MM$(+11dh'!d3hsl+d#c"O R ''y )  % s$   0S	S)S&%S&)S87S8c               $    V ^8  d   QhRRRRRR/# )rI   rj   rK   r   r"   rr   r%   )rT   s   "r.   rU   rV     s'     d dK d dS^ dr-   c                	V    V P                  WV P                  P                  4       4      # r   )r   rP   get_default_include_dirs)rh   rj   r   s   &&&r.   rc   CudaCompiler._to_host_flags  s$    &&uT5G5G5`5`5bccr-   c                   V ^8  d   QhRR/# )rI   rr   rq   r%   )rT   s   "r.   rU   rV     s      T r-   c                	    R # Fr%   rh   s   &r.   needs_static_linker CudaCompiler.needs_static_linker  s    r-   c                   V ^8  d   QhRR/# rI   rr   rK   r%   )rT   s   "r.   rU   rV     s     Y Y; Yr-   c                	r    V P                  V P                  P                  4       \        P                  4      # r   )rc   rP   thread_link_flagsr"   r+   r   s   &r.   r   CudaCompiler.thread_link_flags  s(    ""4#5#5#G#G#I5<<XXr-   c                    V ^8  d   QhRRRR/# )rI   work_dirrN   rr   Noner%   )rT   s   "r.   rU   rV     s     [$ [$S [$T [$r-   c                	v   \         P                  ! R V P                  4       ,           R,           RP                  V P                  4      4       \         P                  ! R\        V P                  4      ,          4       RpRpVP                  R^4      ^ ,          pY@P                  '       d   RMR,          p\        P                  P                  W4      p\        P                  P                  WR	,           4      p\        VR
RR7      ;_uu_ 4       pVP                  V4       RRR4       RV n        . pVRRRV.,          pWP                  RR4      ,          pV P                  '       d7   V P                  P                  4       '       g   WP!                  4       ,          pWP#                  V4      ,          pV P                  V,           p	\         P                  ! RRP                  V	4      4       \%        WR7      w  rp\         P                  ! R4       \         P                  ! V4       \         P                  ! R4       \         P                  ! V4       \         P                  ! R4       V
P&                  ^ 8w  d   \)        RV P+                  4        R24      hV P                  '       d   R# V P                  RRV R2.,           p	 V P-                  W4      w  rTR8X  d	   Yn        R# R#   + '       g   i     EL; i  \(         d,    \)        RT P.                   RT P+                  4        R24      hi ; i)zSanity testing z
 compiler: zIs cross compiler: %s.zsanitycheckcuda.cua  
        #include <cuda_runtime.h>
        #include <stdio.h>

        __global__ void kernel (void) {}

        int main(void){
            struct cudaDeviceProp prop;
            int count, i;
            cudaError_t ret = cudaGetDeviceCount(&count);
            if(ret != cudaSuccess){
                fprintf(stderr, "%d\n", (int)ret);
            }else{
                for(i=0;i<count;i++){
                    if(cudaGetDeviceProperties(&prop, i) == cudaSuccess){
                        fprintf(stdout, "%d.%d\n", prop.major, prop.minor);
                    }
                }
            }
            fflush(stderr);
            fflush(stdout);
            return 0;
        }
        ._crossrx   z.exewzutf-8)encodingNr6   r@   staticz$Sanity check compiler command line: )cwdzSanity check compile stdout: z"-----
Sanity check compile stderr:z-----z	Compiler z cannot compile programs.r4   ru   zExecutables created by z
 compiler z are not runnable.)r   debugget_display_languager   rL   rN   is_crossrsplitospathopenwritedetected_cc_get_ccbin_argsenvironmenthas_exe_wrapperget_compile_only_argsget_output_argsr   
returncoder   name_stringrun_sanity_checklanguage)rh   r   snamecodebinnamesource_namebinary_nameofilerj   cmdlistpcstdostdes   &&           r.   sanity_checkCudaCompiler.sanity_check  s   

$t'@'@'BB\QSVS[S[\`\h\hSij

+c$--.@@A$0 ,,sA&q)}}}8"4ggll83ggll8v-=>+sW55KK 6  	$	8[99
 	%%dB// ===!1!1!A!A!C!C //11E%%k22 ,,&

9388G;LM#G:$

23

4

89

4

7==A&43C3C3E2FF_'`aa ===,,'Q{m1+=!>>	B..wAJD 2:# s 655f $ 	B&)@zZ^ZjZjZlYmm  (A  B  B	Bs   K.
L .K?	6L8
extra_argsdependenciesc               0    V ^8  d   QhRRRRRRRRRRR	R
/# )rI   hnamerN   symbolr   r  zGT.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]]r  z T.Optional[T.List['Dependency']]rr   T.Tuple[bool, bool]r%   )rT   s   "r.   rU   rV   Q  sA     d ds dC d d&md(HdTgdr-   c               	    Vf   . pRVRVRV/pRpV P                  VP                  V4      WER7      w  rV'       d   RV	3# RpV P                  VP                  V4      WER7      # )Nr   headerr  z{prefix}
        #include <{header}>
        int main(void) {{
            /* If it's not defined as a macro, try to use as a symbol */
            #ifndef {symbol}
                {symbol};
            #endif
            return 0;
        }})r  r  Tzw{prefix}
        #include <{header}>
        using {symbol};
        int main(void) {{
            return 0;
        }})compiles
format_map)
rh   r  r  r   r  r  fargstfoundcacheds
   &&&&$$    r.   has_header_symbolCudaCompiler.has_header_symbolQ  sy     J68UHfE all5&9jl< }}Q\\%0Z}ccr-   z>=9.0z>=11.0z>=12.0c                   V ^8  d   QhRR/# )rI   rr   z'MutableKeyedOptionDictType'r%   )rT   s   "r.   rU   rV   q  s      9 r-   c                	8  < . R
Op\        V P                  V P                  4      '       d   VR.,          p\        V P                  V P                  4      '       d   VR.,          p\        V P                  V P                  4      '       d   VR.,          p\
        SV `  4       pV P                  R4      p\        P                  ! V P                  V4      RR VR7      W#&   V P                  R4      p\        P                  ! V P                  V4      RR	4      W#&   V# )nonezc++14zc++17zc++20stdz&C++ language standard to use with CUDA)choicesccbindirz4CUDA non-default toolchain directory to use (-ccbin)rx   )r  zc++03zc++11)r
   rM   _CPP14_VERSION_CPP17_VERSION_CPP20_VERSIONr^   get_optionsform_compileropt_keyr   UserComboOptionmake_option_nameUserStringOption)rh   cpp_stdsoptskeyrl   s   &   r.   r  CudaCompiler.get_optionsq  s    -4<<)<)<==	!H4<<)<)<==	!H4<<)<)<==	!Hw"$''.++!!#&4		 ''
3,,!!#&B	
 r-   c               $    V ^8  d   QhRRRRRR/# rI   target'BuildTarget'
subprojectrS   rr   rK   r%   )rT   s   "r.   rU   rV     s"     > >m > >do >r-   c                	    V P                  W4      p V P                  P                  W4      pW0P	                  V4      ,           #   \         d    . p L&i ; ir   )r   rP   get_option_compile_argsKeyErrorrc   )rh   r(  r*  argshost_compiler_argss   &&&  r.   r,  $CudaCompiler.get_option_compile_args  s\    ##F7	$!%!3!3!K!KF!_ ))*<===  	$!#	$s   A AAc               $    V ^8  d   QhRRRRRR/# )rI   r(  r   r*  rS   rr   rK   r%   )rT   s   "r.   rU   rV     s"     7 7+ 7? 7^i 7r-   c                	   \        4       '       g<   V P                  R W4      p\        V\        4      '       g   Q hVR8w  d   RV,           .#  V P                  P                  W4      pV P                  V4      #   \         d    . p L i ; i)r  r  z--std=)r   get_compileropt_value
isinstancerN   rP   get_option_std_argsr-  rc   )rh   r(  r*  r  r/  s   &&&  r.   r5   CudaCompiler.get_option_std_args  s     ||,,UFGCc3''''f} 3''	$!%!3!3!G!G![ ""#566  	$!#	$s   A9 9B	B	c               $    V ^8  d   QhRRRRRR/# r'  r%   )rT   s   "r.   rU   rV     s'     u u= uo ual ur-   c                	    V P                  W4      pW0P                  V P                  P                  W4      \        P
                  4      ,           # r   )r   rc   rP   get_option_link_argsr"   r+   )rh   r(  r*  r.  s   &&& r.   r9  !CudaCompiler.get_option_link_args  sA    ##F7))$*<*<*Q*QRX*eglgsgstttr-   c               0    V ^8  d   QhRRRRRRRRRRRR	/# )
rI   r   rN   
shlib_namesuffix	soversiondarwin_versionszT.Tuple[str, str]rr   rK   r%   )rT   s   "r.   rU   rV     sA     S Sc Ss SC STW S):S?JSr-   c           	     	x    V P                  V P                  P                  WW4V4      \        P                  4      # r   )rc   rP   get_soname_argsr"   r+   )rh   r   r<  r=  r>  r?  s   &&&&&&r.   rA  CudaCompiler.get_soname_args  s9    ""4#5#5#E#E?$DEJ\\S 	Sr-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s      { r-   c                	    R .# )r2   r%   r   s   &r.   r   "CudaCompiler.get_compile_only_args  s	    vr-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s      + r-   c                	    R .# )r   r%   r   s   &r.   get_no_optimization_args%CudaCompiler.get_no_optimization_args  s	    wr-   c                    V ^8  d   QhRRRR/# rI   optimization_levelrN   rr   rK   r%   )rT   s   "r.   rU   rV     s     : : : :r-   c                	    \         V,          # r   )r   rh   rL  s   &&r.   get_optimization_args"CudaCompiler.get_optimization_args  s     &&899r-   c               $    V ^8  d   QhRRRRRR/# rI   r(  zT.Optional[BuildTarget]r   rK   rr   r%   )rT   s   "r.   rU   rV     s(     ] ]-D ][ ]]h ]r-   c                	V    V P                  V P                  P                  W4      4      # r   )rc   rP   sanitizer_compile_argsrh   r(  r   s   &&&r.   rT  #CudaCompiler.sanitizer_compile_args  s$    ""4#5#5#L#LV#[\\r-   c               $    V ^8  d   QhRRRRRR/# rR  r%   )rT   s   "r.   rU   rV     s(     Z Z*A Z+ ZZe Zr-   c                	V    V P                  V P                  P                  W4      4      # r   )rc   rP   sanitizer_link_argsrU  s   &&&r.   rY   CudaCompiler.sanitizer_link_args  s$    ""4#5#5#I#I&#XYYr-   c                    V ^8  d   QhRRRR/# )rI   is_debugrq   rr   rK   r%   )rT   s   "r.   rU   rV     s     ) )t ) )r-   c                	    \         V,          # r   )r    )rh   r\  s   &&r.   get_debug_argsCudaCompiler.get_debug_args  s    x((r-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s     : : :r-   c                	,    R .pWP                   ,           # )zB-Werror=cross-execution-space-call,deprecated-declarations,reorder)rf   )rh   device_werror_argss   & r.   re   CudaCompiler.get_werror_args  s    bc!$9$999r-   c                    V ^8  d   QhRRRR/# )rI   ri   rN   rr   rK   r%   )rT   s   "r.   rU   rV     s     % %3 %; %r-   c                	(    V P                   V,          # r   )ra   )rh   ri   s   &&r.   get_warn_argsCudaCompiler.get_warn_args  s    ~~e$$r-   c               $    V ^8  d   QhRRRRRR/# )rI   r   rN   	is_systemrq   rr   rK   r%   )rT   s   "r.   rU   rV     s&     D DS DT Dk Dr-   c                	L    VR 8X  d   RpV'       d   RV,           .# RV,           .# )rx   r   z	-isystem=r<   r%   )rh   r   ri  s   &&&r.   get_include_argsCudaCompiler.get_include_args  s)    2:D'0d"#Ctd{mCr-   Fc               $    V ^8  d   QhRRRRRR/# )rI   rel_objrN   pchrq   rr   rK   r%   )rT   s   "r.   rU   rV     s&     ` `# `D `[ `r-   c                	V    V P                  V P                  P                  W4      4      # r   )rc   rP   get_compile_debugfile_args)rh   rn  ro  s   &&&r.   rq  'CudaCompiler.get_compile_debugfile_args  s%    ""4#5#5#P#PQX#^__r-   c                    V ^8  d   QhRRRR/# )rI   
targetfilerN   rr   rK   r%   )rT   s   "r.   rU   rV     s     i i# i+ ir-   c                	t    V P                  V P                  P                  V4      \        P                  4      # r   )rc   rP   get_link_debugfile_argsr"   r+   )rh   rt  s   &&r.   rv  $CudaCompiler.get_link_debugfile_args  s-    ""4#5#5#M#Mj#Y[`[g[ghhr-   c                   V ^8  d   QhRR/# )rI   rr   rN   r%   )rT   s   "r.   rU   rV     s      C r-   c                	    R # )dr%   r   s   &r.   get_depfile_suffixCudaCompiler.get_depfile_suffix  s    r-   c                    V ^8  d   QhRRRR/# rK  r%   )rT   s   "r.   rU   rV     s     t tS t[ tr-   c                	t    V P                  V P                  P                  V4      \        P                  4      # r   )rc   rP   get_optimization_link_argsr"   r+   rN  s   &&r.   r  'CudaCompiler.get_optimization_link_args  s.    ""4#5#5#P#PQc#dfkfrfrssr-   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rI   	build_dirrN   from_dirr(  r   extra_pathsr   rr   z"T.Tuple[T.List[str], T.Set[bytes]]r%   )rT   s   "r.   rU   rV     s8     U U# U Uk U&=U@Ur-   c                	    V P                   P                  WW44      w  rVV P                  V\        P                  4      V3# r   )rP   build_rpath_argsrc   r"   r+   )rh   r  r  r(  r  
rpath_argsrpath_dirs_to_removes   &&&&&  r.   r  CudaCompiler.build_rpath_args  s?     .2-?-?-P-P.6*##J=?STTr-   c                    V ^8  d   QhRRRR/# )rI   r.  rK   rr   r%   )rT   s   "r.   rU   rV     s      K K r-   c                	    V# r   r%   rh   r.  s   &&r.   linker_to_compiler_args$CudaCompiler.linker_to_compiler_args  s    r-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s     F Fk Fr-   c                	T    V P                  V P                  P                  4       4      # r   )rc   rP   get_pic_argsr   s   &r.   r  CudaCompiler.get_pic_args  s"    ""4#5#5#B#B#DEEr-   c               $    V ^8  d   QhRRRRRR/# )rI   parameter_listrK   r  rN   rr   r%   )rT   s   "r.   rU   rV     s#      [ :=BMr-   c                	    . # r   r%   )rh   r  r  s   &&&r.   &compute_parameters_with_absolute_paths3CudaCompiler.compute_parameters_with_absolute_paths  s    	r-   c                    V ^8  d   QhRRRR/# )rI   r(  rN   rr   rK   r%   )rT   s   "r.   rU   rV     s      c k r-   c                	
    R V.# )r7   r%   )rh   r(  s   &&r.   r   CudaCompiler.get_output_args  s    f~r-   c               $    V ^8  d   QhRRRRRR/# )rI   	outtargetrN   outfilerr   rK   r%   )rT   s   "r.   rU   rV     s!       s { r-   c                	L    \        V P                  R 4      '       d   RRVRV.# . # )z>= 10.2r3   rF   r?   )r
   rM   )rh   r  r  s   &&&r.   get_dependency_gen_args$CudaCompiler.get_dependency_gen_args  s+    4<<33 5)UG<<Ir-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s     ] ]{ ]r-   c                	r    V P                  V P                  P                  4       \        P                  4      # r   )rc   rP   get_std_exe_link_argsr"   r+   r   s   &r.   r  "CudaCompiler.get_std_exe_link_args  s(    ""4#5#5#K#K#Mu||\\r-   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )rI   libnamerN   
extra_dirsrK   libtyper	   lib_prefix_warningrq   ignore_system_dirsrr   r   r%   )rT   s   "r.   rU   rV     sA     u uC u[ u7 u)-uJNu[rur-   c                	<    V P                   P                  WW4V4      # r   )rP   find_library)rh   r  r  r  r  r  s   &&&&&&r.   r  CudaCompiler.find_library  s    !!..wGasttr-   c               $    V ^8  d   QhRRRRRR/# rI   crt_valrN   	buildtyperr   rK   r%   )rT   s   "r.   rU   rV     s&     ` `C `C `K `r-   c                	V    V P                  V P                  P                  W4      4      # r   )rc   rP   get_crt_compile_args)rh   r  r  s   &&&r.   r  !CudaCompiler.get_crt_compile_args  s$    ""4#5#5#J#J7#^__r-   c               $    V ^8  d   QhRRRRRR/# r  r%   )rT   s   "r.   rU   rV     s&     E E E E Er-   c                	B   . pV P                   P                  W4      p\        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d   VR.,          pV P                  W0P                   P	                  W4      ,           \
        P                  4      # )c              3  *   "   T F	  qR9   x  K  	  R# 5i)/MDdN>   /MDr  /MTdr%   )rY   ro   s   & r.   r[   1CudaCompiler.get_crt_link_args.<locals>.<genexpr>  s     O9N#--9Ns   TFz/NODEFAULTLIB:LIBCMT.lib)rP   r  anyrc   get_crt_link_argsr"   r+   )rh   r  r  host_link_arg_overrideshost_crt_compile_argss   &&&  r.   r  CudaCompiler.get_crt_link_args  s     #% $ 2 2 G G [3O9NO333O9NOOO#(B'CC#""#:=O=O=a=abi=u#uw|  xD  xD  E  	Er-   c                    V ^8  d   QhRRRR/# )rI   r(  r)  rr   rK   r%   )rT   s   "r.   rU   rV   
  s     W W= W[ Wr-   c                	^   < V P                  \        SV `	  V4      \        P                  4      # r   )rc   r^   get_target_link_argsr"   r+   )rh   r(  rl   s   &&r.   r  !CudaCompiler.get_target_link_args
  s$    ""57#?#GVVr-   c                    V ^8  d   QhRRRR/# rI   depz'Dependency'rr   rK   r%   )rT   s   "r.   rU   rV     s     M M| M Mr-   c                	@   < V P                  \        SV `	  V4      4      # r   )rc   r^   get_dependency_compile_argsrh   r  rl   s   &&r.   r  (CudaCompiler.get_dependency_compile_args  s    ""57#Fs#KLLr-   c                    V ^8  d   QhRRRR/# r  r%   )rT   s   "r.   rU   rV     s     X XL X[ Xr-   c                	^   < V P                  \        SV `	  V4      \        P                  4      # r   )rc   r^   get_dependency_link_argsr"   r+   r  s   &&r.   r  %CudaCompiler.get_dependency_link_args  s$    ""57#CC#H%,,WWr-   c               $    V ^8  d   QhRRRRRR/# )rI   r(  z'T.Optional[BuildTarget]'r*  rS   rr   rK   r%   )rT   s   "r.   rU   rV     s$     
 
&? 
$3
?J
r-   c                	p   V P                  R 4      P                  VR7      pV'       d'   V P                  P                  P	                  W4      pM/V P                  P                  P
                  P                  V4      p\        V\        4      '       d"   VR8w  d   V P                  RV,           R4      .# . # )r  )r*  rx   z-ccbin=F)
r  evolver   coredataget_option_for_targetoptstoreget_value_forr4  rN   r   )rh   r(  r*  r$  r  s   &&&  r.   r   CudaCompiler._get_ccbin_args  s    ''
3::j:Q''00FFvSH''0099GGLHh$$R..y/A5IJJIr-   c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV     s     [ [; [r-   c                	n    V P                   P                  4        Uu. uF  pR V,           NK  	  up# u upi r   )rP   get_profile_generate_argsrh   rk   s   & r.   r  &CudaCompiler.get_profile_generate_args  s3    +/+=+=+W+W+YZ+Ya!!+YZZZ   2c                   V ^8  d   QhRR/# r   r%   )rT   s   "r.   rU   rV   "  s     V Vk Vr-   c                	n    V P                   P                  4        Uu. uF  pR V,           NK  	  up# u upi r   )rP   get_profile_use_argsr  s   & r.   r  !CudaCompiler.get_profile_use_args"  s3    +/+=+=+R+R+TU+Ta!!+TUUUr  c                    V ^8  d   QhRRRR/# )rI   disablerq   rr   rK   r%   )rT   s   "r.   rU   rV   %  s     I It I Ir-   c                	    . pV'       g   V P                   '       d   R .pV P                  P                  V4      V,           # )z-DCCCL_ENABLE_ASSERTIONS=1)rg   rP   get_assert_args)rh   r  cccl_macross   && r.   r  CudaCompiler.get_assert_args%  s9    466678K!!11':[HHr-   c                    V ^8  d   QhRRRR/# rI   r.  rK   rr   r	  r%   )rT   s   "r.   rU   rV   -  s     m m m8K mr-   c                	h    V P                  V4      pV P                  R V\        P                  R7      # )int main(void) { return 0; }r  mode)rc   r  r   COMPILEr  s   &&r.   has_multi_arguments CudaCompiler.has_multi_arguments-  s/    ""4(}};ScSkSk}llr-   c                    V ^8  d   QhRRRR/# r  r%   )rT   s   "r.   rU   rV   1  s     j j[ j=P jr-   c                	   V P                   P                  4        Uu. uF  pR V P                  V4      ,           NK  	  ppWP                  V\        P
                  R7      ,          pV P                  RV\        P                  R7      # u upi )z	-Xnvlink=)r   r  r  )	r$   fatal_warningsr   rc   r"   r+   r  r   LINK)rh   r.  r   s   && r.   has_multi_link_arguments%CudaCompiler.has_multi_link_arguments1  sw    CG;;C]C]C_`C_aD66q999C_`##D#==}};ScShSh}ii as   !B	)r`   rg   r   rP   rf   ra   )NN)Tr   r   )Cr&   r'   r(   r)   LINKER_PREFIXr   r   r   rb   r   idr_   classmethodr   r   r"   r*   r   rc   r   r   r  r  r  r  r  r  r,  r5  r9  rA  r   rH  rO  rT  rY  r^  re   rf  rk  rq  rv  r{  r  r  r  r  r  r   r  r  r	   PREFER_SHAREDr  r  r  r  r  r  r   r  r  r  r  r  r,   __classcell__)kvrl   s   00@r.   r0   r0   3   s}
   MH@@0:@ 	(@ 16@ 	'	@ 1N	@
 	@ 	@ 17@ 	@ 19@ 	@ 16@ 	@ 16@ 	@ 18@ 	@ 15@ 	@ 1:@ 	@ 19@ 	@ 17@ 	@ 15@  	"!@  15!@" 	,#@" 16#@$ 	/%@$ 16%@& 	9'@& ;A'@( 	)@* 	+@* 16+@, 	-@, 15-@. 	/@. 15/@0 	%1@0 171@2 	3@2 1<3@4 	5@4 185@6 	7@6 187@8 	9@8 1:9@: 	,;@: 1@;@< 	#=@< 1J=@> 	?@> 1C?@@ 	!A@@ 1HA@B 	C@B 17C@D 	E@D 17E@F 	-G@F 1TG@H 	+I@H 1RI@J 	K@J 1:K@L 	M@L 1:M@N 	O@N 15O@P 	Q@P 18Q@R 	S@R 1>S@T 	U@T 19U@V 	W@X 	Y@X 1;Y@Z 	'[@Z 1N[@\ 	]@\ 1A]@^ 	'_@^ 1N_@` 	#a@` 1@a@b 	"c@b 1Ic@d 	e@d 15e@f 	g@f 1>g@h 	i@h 1<i@j 	'k@j 1Nk@l 	(m@l 1Om@n 	o@n 1<o@p 	#q@p 1Jq@r 	&s@r 1Ms@t 	!u@t 1:u@v 	w@v 1=w@x 	y@x 15y@z 	{@z 15{@| 	}@| 1;}@~ 	@~ 1;@F6!6!
6! 	6! 		6!
 	6! 	6! 	
6! 	6! 	6! 	6! 	6! 	6! 		6! 	6! 	 6!  	!6!" 	#6!$ 	%6!& 	&0L'6!( 	0B)6!* 	+6!, 	-6!. 	/6!0 	16!2 	
36!4 	56!6 		76!8 	
96!: 	;6!< 	=6!> 	?6!@ 	A6!B 	$C6!D 	E6!F 	#G6!H 	0AI6!J 	K6!L 	M6!N 	
O6!P 	$Q6!R 	S6!T 	U6!V 	W6!X 	Y6!Z 	[6!\ 	]6!^ 		_6!` 	a6!b 	0@c6!d 	e6!f 	g6!h 	k6!p 3L2Q2Q2S T2S$!2S T	BN N" 8! 8!t . .` CH>>  DH s( s(j AF dY[$zdptdKOd8 NNN 4> >7 7 u uS
:]Z):%D
` `itU UF] V]UjUj04QVu u`EW WM MX X
 
[VImj j{ !Us   8Nr0   )&__conditional_annotations__
__future__r   enumos.pathr   r{   typingTrx   r   r   mesonlibr   r   r   r	   r
   	compilersr   r   TYPE_CHECKINGbuildr   r   r  r   r   r   linkers.linkersr   r   r   __annotations__r    Enumr"   r0   )r  s   @r.   <module>r     s   
 # "        2???#4))/( R$%%%	%%4 0  
24&.* DII Aj8 Ajr-   