+
    UBi).                      a  0 t $ ^ RIHt ^ RIt^ RIt^RIHtHt ^RI	H
t
 ^RIHt ^RIHt ^RIHtHtHt ^RIHt ]P*                  '       d   ^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./tR]R&    ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      t  ! R" R#]]4      t! ! R$ R%]]4      t" ! R& R']"4      t# ! R( R)]"4      t$R# )*    )annotationsN)EnvironmentExceptionget_meson_command)	OptionKey)Compiler)VisualStudioLikeLinkerMixin)MetrowerksCompilermwasmarm_instruction_set_argsmwasmeppc_instruction_set_args)
TICompiler)DynamicLinker)MachineChoice)Environmentplain0z-O0g1z-O12z-Ox3sT.Dict[str, T.List[str]]nasm_optimization_argsc                  \   a  ] tR t^t$ Rt]! 4       tR]R&   R	R V 3R llltR R lt	Rt
V ;t# )
ASMCompilerz4Shared base class for all ASM Compilers (Assemblers)z
T.Set[str]_SUPPORTED_ARCHESc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/#    ccacheT.List[str]exelistversionstrfor_machiner   envr   linkerzT.Optional[DynamicLinker]full_versionT.Optional[str] )formats   "=/usr/lib/python3.14/site-packages/mesonbuild/compilers/asm.py__annotate__ASMCompiler.__annotate__#   sL     [ [{ [[ [3 [+[2=[2[  /[    c           	     	   < VP                   V,          pV P                  '       dB   VP                  V P                  9  d'   \        R V P                   RVP                   R24      h\
        S	V `  WW4WVV4       R# )zASM Compiler z does not support building for z CPU family.N)machinesr   
cpu_familyr   idsuper__init__)
selfr   r!   r"   r$   r%   r&   r'   info	__class__s
   &&&&&&&& r+   r4   ASMCompiler.__init__#   sk     ||K(!!!dooT=S=S&S&twwi?^_c_n_n^oo{'|}}'\Zr.   c                    V ^8  d   QhRRRR/# )r   work_dirr#   returnNoner)   )r*   s   "r+   r,   r-   ,   s      S T r.   c                	    R # Nr)   )r5   r:   s   &&r+   sanity_checkASMCompiler.sanity_check,       r.   r)   NN)__name__
__module____qualname____firstlineno____doc__setr   __annotations__r4   r?   __static_attributes____classcell__r7   s   @r+   r   r      s)    >$'Ez)[ [ r.   r   c                    a  ] tR t^0t$ RtRtR. R. R*OR. R+OR. R,OR. R-O/tR]R&   R	R
0tR.R V 3R l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  ltR! R" ltR# R$ ltR% R& ltR' R( ltR)tV ;t# )/NasmCompilernasmnonemdmddmtmtdr   crt_argsx86x86_64c               4    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$   z'MachineChoice'r%   r   r&   zT.Optional['DynamicLinker']r'   r(   r)   )r*   s   "r+   r,   NasmCompiler.__annotate__?   sC     8 8{ 8[ 83 8-84?848  /8r.   c           	     	   < \         SV `  WW4WVV4       \        V P                  \        4      '       d'   V P
                  P                  \        R 4      4       R# R# )b_vscrtN)r3   r4   
isinstancer&   r   base_optionsaddr   )	r5   r   r!   r"   r$   r%   r&   r'   r7   s	   &&&&&&&&r+   r4   NasmCompiler.__init__?   sI     	'\Zdkk#>??!!)I"67 @r.   c                   V ^8  d   QhRR/# r   r;   boolr)   )r*   s   "r+   r,   rZ   G         T r.   c                	    R # Tr)   r5   s   &r+   needs_static_linker NasmCompiler.needs_static_linkerG   rA   r.   c                   V ^8  d   QhRR/# r   r;   r    r)   )r*   s   "r+   r,   rZ   J   s       r.   c                	   V P                   P                  '       d   R MRpV P                   P                  4       '       g!   V P                   P                  4       '       d	   RpRV 2pM)V P                   P	                  4       '       d   RpRpMRpRpRV V 2R	V 2.pV P                   P                  '       d   VP                  R
4       V# )6432winWINmachoMACHOelfELFz-fz-Dz-D__x86_64__)r6   	is_64_bit
is_windows	is_cygwin	is_darwinappend)r5   cpuplatdefineargss   &    r+   get_always_argsNasmCompiler.get_always_argsJ   s    ii)))dt99!!TYY%8%8%:%:D3%[FYY  ""DFDFsen6(m499KK'r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rZ   Z          r.   c                	    R .# )z-Werrorr)   rg   s   &r+   get_werror_argsNasmCompiler.get_werror_argsZ   
    {r.   c                    V ^8  d   QhRRRR/# r   
outputnamer#   r;   r    r)   )r*   s   "r+   r,   rZ   ]        " "# "+ "r.   c                	
    R V.# z-or)   r5   r   s   &&r+   get_output_argsNasmCompiler.get_output_args]       j!!r.   c                    V ^8  d   QhRRRR/# )r   r}   r    r;   r)   )r*   s   "r+   r,   rZ   `   s        r.   c                	P    . pV F  pVR9   d   K  VP                  V4       K  	  V# )-mms-bitfields>   -pthreadr   )ry   )r5   r}   outargsargs   &&  r+   unix_args_to_native NasmCompiler.unix_args_to_native`   s0    !C44NN3  r.   c                    V ^8  d   QhRRRR/# r   optimization_levelr#   r;   r    r)   )r*   s   "r+   r,   rZ   h   s     : : : :r.   c                	    \         V,          # r>   )r   r5   r   s   &&r+   get_optimization_args"NasmCompiler.get_optimization_argsh   s    %&899r.   c                    V ^8  d   QhRRRR/# r   is_debugrc   r;   r    r)   )r*   s   "r+   r,   rZ   k         t  r.   c                	    V'       d   R .# . # -gr)   r5   r   s   &&r+   get_debug_argsNasmCompiler.get_debug_argsk       6M	r.   c                   V ^8  d   QhRR/# r   r;   r#   r)   )r*   s   "r+   r,   rZ   p         C r.   c                	    R # dr)   rg   s   &r+   get_depfile_suffixNasmCompiler.get_depfile_suffixp       r.   c               $    V ^8  d   QhRRRRRR/# r   	outtargetr#   outfiler;   r    r)   )r*   s   "r+   r,   rZ   s   s!     2 2 2s 2{ 2r.   c                	    R VRV.# )z-MDz-MQr)   r5   r   r   s   &&&r+   get_dependency_gen_args$NasmCompiler.get_dependency_gen_argss   s    wy11r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rZ   v         k r.   c                	    . # r>   r)   rg   s   &r+   get_pic_argsNasmCompiler.get_pic_argsv       	r.   c               $    V ^8  d   QhRRRRRR/# r   pathr#   	is_systemrc   r;   r    r)   )r*   s   "r+   r,   rZ   y   !      S T k r.   c                	*    V'       g   R pRV,           .# .-Ir)   r5   r   r   s   &&&r+   get_include_argsNasmCompiler.get_include_argsy       Dt}r.   c               $    V ^8  d   QhRRRRRR/# r   parameter_listr    	build_dirr#   r;   r)   )r*   s   "r+   r,   rZ   ~   #      [ :=BMr.   c           	     	    \        V4       Fh  w  r4VR ,          R8X  g   K  VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kj  	  V# Nr   Nr   r   NN	enumerateosr   normpathjoinr5   r   r   idxis   &&&  r+   &compute_parameters_with_absolute_paths3NasmCompiler.compute_parameters_with_absolute_paths~   Y    /FCu}&'ebgg.>.>rww||IY[W\?].^&^# 0 r.   c               $    V ^8  d   QhRRRRRR/# r   crt_valr#   	buildtyper;   r    r)   )r*   s   "r+   r,   rZ      !      C C K r.   c                	    . # r>   r)   r5   r   r   s   &&&r+   get_crt_compile_args!NasmCompiler.get_crt_compile_args   r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   rZ      s&     C C C C Cr.   c                	    \        V P                  \        4      '       g   . # V P                  V P	                  W4      ,          # r>   )r]   r&   r   rU   get_crt_valr   s   &&&r+   get_crt_link_argsNasmCompiler.get_crt_link_args   s3    $++'BCCI}}T--gABBr.   r)   )z/DEFAULTLIB:ucrt.libz/DEFAULTLIB:vcruntime.libz/DEFAULTLIB:msvcrt.lib)z/DEFAULTLIB:ucrtd.libz/DEFAULTLIB:vcruntimed.libz/DEFAULTLIB:msvcrtd.lib)z/DEFAULTLIB:libucrt.libz/DEFAULTLIB:libvcruntime.libz/DEFAULTLIB:libcmt.lib)z/DEFAULTLIB:libucrtd.libz/DEFAULTLIB:libvcruntimed.libz/DEFAULTLIB:libcmtd.librB   )rC   rD   rE   rF   languager2   rU   rI   r   r4   rh   r~   r   r   r   r   r   r   r   r   r   r   r   r   rJ   rK   rL   s   @r+   rN   rN   0   s    H	B 	]acg*H&  )8 8 ":
2
C Cr.   rN   c                  Z   a  ] tR t^tRtR R ltRR V 3R llltR R ltR R	 ltR
t	V ;t
# )YasmCompileryasmc                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   YasmCompiler.__annotate__   s        r.   c                	    . # r>   r)   r   s   &&r+   r   "YasmCompiler.get_optimization_args   s    	r.   c                    V ^8  d   QhRRRR/# )r   r   rc   r;   r    r)   )r*   s   "r+   r,   r      s     F F$ F+ Fr.   c                	V   < \         SV `  V4      p\        4       R R.,           V,           # )z
--internalr   )r3   get_exelistr   )r5   r   r!   r7   s   && r+   r   YasmCompiler.get_exelist   s*    '%f- "lF%;;gEEr.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   r      s      t  r.   c                	    V'       dM   \        V P                  \        4      '       d   R R.# V P                  P	                  4       '       d   R R.# R R.# . # )r   cv8nulldwarf2)r]   r&   r   r6   rx   r   s   &&r+   r   YasmCompiler.get_debug_args   sN    $++'BCCe}$$$&&f~%h''	r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   r      s!     & & &s &{ &r.   c                	
    R V.# )z	--depfiler)   r   s   &&&r+   r   $YasmCompiler.get_dependency_gen_args   s    W%%r.   r)   rf   )rC   rD   rE   rF   r2   r   r   r   r   rJ   rK   rL   s   @r+   r   r      s(    	BF F
& &r.   r   c                      ] tR t^tRtRtRR0tR R lt]R R l4       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R R ltRtR # )!MasmCompilermasmmlrV   rW   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   MasmCompiler.__annotate__   s      { r.   c                	    R .# )z/cr)   rg   s   &r+   get_compile_only_args"MasmCompiler.get_compile_only_args   s	    vr.   c                   V ^8  d   QhRR/# r   r)   )r*   s   "r+   r,   r
     s       r.   c                 	    R # msvcr)   r)   r.   r+   get_argument_syntax MasmCompiler.get_argument_syntax   s    r.   c                   V ^8  d   QhRR/# rb   r)   )r*   s   "r+   r,   r
     rd   r.   c                	    R # rf   r)   rg   s   &r+   rh    MasmCompiler.needs_static_linker   rA   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   r
     r   r.   c                	    R .# )z/nologor)   rg   s   &r+   r~   MasmCompiler.get_always_args   r   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   r
     s       r.   c                	    R .# )z/WXr)   rg   s   &r+   r   MasmCompiler.get_werror_args   s	    wr.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   r
     s     # ## #+ #r.   c                	
    R V.# )z/For)   r   s   &&r+   r   MasmCompiler.get_output_args   s    z""r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   r
             r.   c                	    . # r>   r)   r   s   &&r+   r   "MasmCompiler.get_optimization_args   r   r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   r
     r   r.   c                	    V'       d   R .# . # )z/Zir)   r   s   &&r+   r   MasmCompiler.get_debug_args   s    7N	r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   r
     r   r.   c                	    . # r>   r)   rg   s   &r+   r   MasmCompiler.get_pic_args   r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   r
     r   r.   c                	*    V'       g   R pRV,           .# r   r)   r   s   &&&r+   r   MasmCompiler.get_include_args   r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   r
     r   r.   c           	     	   \        V4       Fv  w  r4VR ,          R8X  g   VR ,          R8X  g   K#  VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kx  	  V# )r   r   z/Ir   r   r   s   &&&  r+   r   3MasmCompiler.compute_parameters_with_absolute_paths   sc    /FCu}"&'ebgg.>.>rww||IY[W\?].^&^# 0 r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   r
     r   r.   c                	    . # r>   r)   r   s   &&&r+   r   !MasmCompiler.get_crt_compile_args   r   r.   c                    V ^8  d   QhRRRR/# r   objfiler#   r;   r(   r)   )r*   s   "r+   r,   r
           # / r.   c                	    R # r>   r)   r5   r5  s   &&r+   depfile_for_objectMasmCompiler.depfile_for_object   rA   r.   r)   N)rC   rD   rE   rF   r   r2   r   r  staticmethodr  rh   r~   r   r   r   r   r   r   r   r   r9  rJ   r)   r.   r+   r  r     sl    H	B)  #

 r.   r  c                      ] tR t^tRtRtRR0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R R ltR R ltRtR# )MasmARMCompilerr  armasmarmaarch64c                   V ^8  d   QhRR/# rb   r)   )r*   s   "r+   r,   MasmARMCompiler.__annotate__   rd   r.   c                	    R # rf   r)   rg   s   &r+   rh   #MasmARMCompiler.needs_static_linker   rA   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rB     r   r.   c                	    R .# )z-nologor)   rg   s   &r+   r~   MasmARMCompiler.get_always_args   r   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rB            r.   c                	    . # r>   r)   rg   s   &r+   r   MasmARMCompiler.get_werror_args   r   r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   rB     r   r.   c                	
    R V.# r   r)   r   s   &&r+   r   MasmARMCompiler.get_output_args   r   r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   rB     r!  r.   c                	    . # r>   r)   r   s   &&r+   r   %MasmARMCompiler.get_optimization_args   r   r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   rB     r   r.   c                	    V'       d   R .# . # r   r)   r   s   &&r+   r   MasmARMCompiler.get_debug_args   r   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rB     r   r.   c                	    . # r>   r)   rg   s   &r+   r   MasmARMCompiler.get_pic_args   r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   rB     r   r.   c                	*    V'       g   R pRV,           .# )r   z-ir)   r   s   &&&r+   r    MasmARMCompiler.get_include_args   r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   rB    r   r.   c           	     	    \        V4       Fh  w  r4VR ,          R8X  g   K  VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kj  	  V# r   r   r   s   &&&  r+   r   6MasmARMCompiler.compute_parameters_with_absolute_paths  r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   rB  
  r   r.   c                	    . # r>   r)   r   s   &&&r+   r   $MasmARMCompiler.get_crt_compile_args
  r   r.   c                   V ^8  d   QhRR/# r   r)   )r*   s   "r+   r,   rB    s      C r.   c                	    R # r  r)   rg   s   &r+   get_depfile_format"MasmARMCompiler.get_depfile_format  s    r.   c                    V ^8  d   QhRRRR/# r4  r)   )r*   s   "r+   r,   rB    r6  r.   c                	    R # r>   r)   r8  s   &&r+   r9  "MasmARMCompiler.depfile_for_object  rA   r.   r)   N)rC   rD   rE   rF   r   r2   r   rh   r~   r   r   r   r   r   r   r   r   rc  r9  rJ   r)   r.   r+   r=  r=     sX    H	B	*"

 r.   r=  c                  `    ] tR tRtRtR0tRR R lltR R ltR	 R
 ltR R lt	R R lt
RtR# )TILinearAsmCompileri  	linearasmc6000Nc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# r   r)   )r*   s   "r+   r,    TILinearAsmCompiler.__annotate__  sC     " "{ "[ "3 "+"2="2"  /"r.   c           
     	b    \         P                  WW#WEWg4       \        P                  ! V 4       R # r>   )r   r4   r   r5   r   r!   r"   r$   r%   r&   r'   s   &&&&&&&&r+   r4   TILinearAsmCompiler.__init__  s&     	T7[vdD!r.   c                   V ^8  d   QhRR/# rb   r)   )r*   s   "r+   r,   rm     rd   r.   c                	    R # rf   r)   rg   s   &r+   rh   'TILinearAsmCompiler.needs_static_linker   rA   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   rm  #  rI  r.   c                	    . # r>   r)   rg   s   &r+   r~   #TILinearAsmCompiler.get_always_args#  r   r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   rm  &  r   r.   c                	    . # r>   r)   r   s   &&&r+   r   (TILinearAsmCompiler.get_crt_compile_args&  r   r.   c                   V ^8  d   QhRR/# r   r)   )r*   s   "r+   r,   rm  )  r   r.   c                	    R # r   r)   rg   s   &r+   r   &TILinearAsmCompiler.get_depfile_suffix)  r   r.   r)   rB   )rC   rD   rE   rF   r   r   r4   rh   r~   r   r   rJ   r)   r.   r+   ri  ri    s-    H 	" r.   ri  c                  Z    ] tR tRtRtRR R lltR R ltR R	 ltR
 R ltR R lt	Rt
R# )MetrowerksAsmCompileri-  rO   Nc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rY   r)   )r*   s   "r+   r,   "MetrowerksAsmCompiler.__annotate__0  sC     + +{ +[ +3 +-+4?+4+  /+r.   c           
     	    \         P                  WW#WEWg4       \        P                  ! V 4       R . R. R. R. R. /V n        V P                  P                  R4       R# )r   r   r   r   
everythingr   N)r   r4   r	   	warn_argscan_compile_suffixesr_   ro  s   &&&&&&&&r+   r4   MetrowerksAsmCompiler.__init__0  s`     	T7[vd##D) "4 	!!%%c*r.   c               $    V ^8  d   QhRRRRRR/# r   r)   )r*   s   "r+   r,   r  ?  r   r.   c                	    . # r>   r)   r   s   &&&r+   r   *MetrowerksAsmCompiler.get_crt_compile_args?  r   r.   c                    V ^8  d   QhRRRR/# r   r)   )r*   s   "r+   r,   r  B  r!  r.   c                	    . # r>   r)   r   s   &&r+   r   +MetrowerksAsmCompiler.get_optimization_argsB  r   r.   c                   V ^8  d   QhRR/# rk   r)   )r*   s   "r+   r,   r  E  r   r.   c                	    . # r>   r)   rg   s   &r+   r   "MetrowerksAsmCompiler.get_pic_argsE  r   r.   c                   V ^8  d   QhRR/# rb   r)   )r*   s   "r+   r,   r  H  rd   r.   c                	    R # rf   r)   rg   s   &r+   rh   )MetrowerksAsmCompiler.needs_static_linkerH  rA   r.   )r  rB   )rC   rD   rE   rF   r   r4   r   r   r   rh   rJ   r)   r.   r+   r~  r~  -  s%    H+ r.   r~  c                  ,    ] tR tRtRtR0tR R ltRtR# )MetrowerksAsmCompilerARMiL  mwasmarmr?  c                    V ^8  d   QhRRRR/# r   instruction_setr#   r;   zT.Optional[T.List[str]]r)   )r*   s   "r+   r,   %MetrowerksAsmCompilerARM.__annotate__P  s     H H H@W Hr.   c                	0    \         P                  ! VR 4      # r>   )r
   getr5   r  s   &&r+   get_instruction_set_args1MetrowerksAsmCompilerARM.get_instruction_set_argsP  s    ,00$GGr.   r)   NrC   rD   rE   rF   r2   r   r  rJ   r)   r.   r+   r  r  L  s    	BH Hr.   r  c                  ,    ] tR tRtRtR0tR R ltRtR# )$MetrowerksAsmCompilerEmbeddedPowerPCiT  	mwasmeppcppcc                    V ^8  d   QhRRRR/# r  r)   )r*   s   "r+   r,   1MetrowerksAsmCompilerEmbeddedPowerPC.__annotate__X  s     I I I@W Ir.   c                	0    \         P                  ! VR 4      # r>   )r   r  r  s   &&r+   r  =MetrowerksAsmCompilerEmbeddedPowerPC.get_instruction_set_argsX  s    -11/4HHr.   r)   Nr  r)   r.   r+   r  r  T  s    	BI Ir.   r  )%__conditional_annotations__
__future__r   r   typingTmesonlibr   r   optionsr   	compilersr   linkers.linkersr   mixins.metrowerksr	   r
   r   	mixins.tir   TYPE_CHECKINGr   r   environmentr   r   rI   r   rN   r   r  r=  ri  r~  r  r  )r  s   @r+   <module>r     s    " " 	  >   9 p p !???/() R%%%%%%4 0 ( &^C; ^C@&< &44; 4p/k /f*k 0. >H4 HI+@ Ir.   