
    <h                        S SK Jr  S SKrS SKrSSKJr  SSKJr  SSKJ	r	  SSK
JrJr  SS	KJr  SS
KJrJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJrJr  SSKJ r J!r!  SSK"J#r#J$r$  SSK"J%r%J&r&  SSK'J(r(J)r)  SSK*J+r+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4  SSK3J5r5J6r6  SSK7J8r8  SSK9J:r:J;r;J<r<  \Rz                  (       a3  SSKJ>r>  SSK?J@r@  SSKAJBrB  SS KCJDrD  SS!KEJFrF  SS"K
JGrG  SS#K9JHrH  SS$KIJJrJ  \<rKO\LrK/ S%QrM\M\M V s/ s H  n S&U SS  3PM     sn -  rM\M/ S'Q-  rM " S( S)\\<5      rN " S* S+\,\+\N5      rO " S, S-\O5      rP " S. S/\\\O5      rQ " S0 S1\2\O5      rR " S2 S3\\N5      rS " S4 S5\$\#\N5      rT " S6 S7\0\N5      rU " S8 S9\0\N5      rV " S: S;\.\N5      rW " S< S=\(\N5      rX " S> S?\O5      rY " S@ SA\K5      rZ " SB SC\ \Z\N5      r[ " SD SE\,\!\Z\N5      r\ " SF SG\)\Z\N5      r] " SH SI\]5      r^ " SJ SK\\N5      r_ " SL SM\\N5      r` " SN SO\\N5      ra " SP SQ\\N5      rb " SR SS\\N5      rc " ST SU\c5      rd " SV SW\c5      re " SX SY\4\N5      rf " SZ S[\4\N5      rg " S\ S]\8\N5      rhgs  sn f )^    )annotationsN   )options)	OptionKey)mlog)MesonExceptionversion_compare   )C_FUNC_ATTRIBUTES)AppleCompilerMixinAppleCStdsMixin)CLikeCompiler)CcrxCompiler)Xc16Compiler)CompCertCompiler)
TICompiler)ArmCompilerArmclangCompiler)MSVCCompilerClangClCompiler)GnuCompilerGnuCStds)gnu_common_warning_argsgnu_c_warning_args)IntelGnuLikeCompilerIntelVisualStudioLikeCompiler)ClangCompiler
ClangCStds)ElbrusCompiler)PGICompiler)EmscriptenMixin)MetrowerksCompiler)mwccarm_instruction_set_argsmwcceppc_instruction_set_args)TaskingCompiler)gnu_winlibsmsvc_winlibsCompiler)MutableKeyedOptionDictType)
Dependency)MachineInfo)Environment)DynamicLinker)MachineChoice)CompileCheckMode)BuildTarget)c89c9xc90c99c1xc11c17c18c2xc23c2ygnu)iso9899:1990iso9899:199409iso9899:1999iso9899:2011iso9899:2017iso9899:2018c                     ^  \ rS rSrSS jrSr  S     SS jjrSS jrSS jrSSS.       SS	 jjr	SU 4S
 jjr
SrU =r$ )	CCompiler:   c                P     [         U   $ ! [         a    [        SU S35      ef = f)NzUnknown function attribute "")r   KeyErrorr   )selfnames     w/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/compilers/c.pyattribute_check_funcCCompiler.attribute_check_func;   s9    	I$T** 	I #?vQ!GHH	Is    %cNc	                `    [         R                  " XX#XFXXUS9	  [        R                  " U 5        g )N)is_crossfull_versionlinker)r(   __init__r   	rI   ccacheexelistversionfor_machinerP   inforR   rQ   s	            rK   rS   CCompiler.__init__C   s,    
 	$+#+v	Wt$    c                    S/$ )Nz	-nostdinc rI   s    rK   get_no_stdinc_argsCCompiler.get_no_stdinc_argsL   s
    }r[   c                ,    SnU R                  XSU5      $ )Nz.int main(void) { int class=0; return class; }
zsanitycheckc.c)_sanity_check_impl)rI   work_direnvironmentcodes       rK   sanity_checkCCompiler.sanity_checkO   s    @&&x>NPTUUr[   
extra_argsdependenciesc               R    X1US.nSnU R                  UR                  " S0 UD6XEUS9$ )N)prefixheadersymbolz{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;
        }}rh   r]   )compilesformat)	rI   hnamern   rl   envri   rj   fargsts	            rK   has_header_symbolCCompiler.has_header_symbolS   s@     "fE }}QXX..*6  8 	8r[   c                   > [         TU ]  5       nU R                  S5      nUR                  U[        R
                  " S[        5      05        U$ )NstdrN   )superget_optionsform_compileropt_keyupdater   UserStdOptionALL_STDSrI   optskey	__class__s      rK   rz   CCompiler.get_optionsd   sJ    w"$''.&&sH5
 	 r[   r]   )rJ   strreturnr   NNrU   T.List[str]rV   r   rW   r   rX   r.   rP   boolrY   'MachineInfo'rR   T.Optional['DynamicLinker']rQ   T.Optional[str]r   r   )rc   r   rd   'Environment'r   None)rq   r   rn   r   rl   r   rr   r   ri   zIT.Union[None, T.List[str], T.Callable[['CompileCheckMode'], T.List[str]]]rj    T.Optional[T.List['Dependency']]r   T.Tuple[bool, bool]r   z'MutableKeyedOptionDictType')__name__
__module____qualname____firstlineno__rL   languagerS   r_   rf   ru   rz   __static_attributes____classcell__r   s   @rK   rD   rD   :   s    I H 8<15%$%4%  /%V swKO8,8&o8 )I8 Uh8" r[   rD   c                  j   ^  \ rS rSr   S       SS jjrS	U 4S jjrS
SS jjrS
SS jjrSrU =r	$ )ClangCCompilerm   c
                    [         R                  XX#XEXgU	S9	  [        R                  " X5        SS/n
/ U
U
S/-   U
SS/-   S/S.U l        g NrR   rQ   -Wall-Winvalid-pch-Wextra
-Wpedanticz-Weverything0123
everything)rD   rS   r   	warn_argsrI   rU   rV   rW   rX   rP   rY   rR   definesrQ   default_warn_argss              rK   rS   ClangCCompiler.__init__o   sk    
 	4;RV  uA  	Bt-$o6!00I;>0I|3LL)7(8	:r[   c                  > [         TU ]  5       nU R                  R                  5       (       d  U R                  R	                  5       (       a>  U R                  S5      n[        R                  " U R                  U5      S[        5      X'   U$ Nwinlibsz*Standard Windows libraries to link against
ry   rz   rY   
is_windows	is_cygwinr{   r   UserStringArrayOptionmake_option_namer&   r   s      rK   rz   ClangCCompiler.get_options}   r    w"$99!!TYY%8%8%:%:++I6C55%%c*<DI r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ Nrx   none-std=get_compileropt_value
isinstancer   appendrI   targetrr   
subprojectargsrx   s         rK   get_option_std_args"ClangCCompiler.get_option_std_args   J    ((ZH#s####&=KK#&r[   c                :   U R                   R                  5       (       d  U R                   R                  5       (       a\  U R                  SX!U5      n[	        U[
        5      (       d   eUR                  5       nU H  n[	        U[        5      (       a  M   e   U$ / $ Nr   rY   r   r   r   r   listcopyr   rI   r   rr   r   retvallibsls          rK   get_option_link_args#ClangCCompiler.get_option_link_args   s    99!!TYY%8%8%:%://	3
SFfd++++ &D!!S)))) K	r[   r   NNNrU   r   rV   r   rW   r   rX   r.   rP   r   rY   r   rR   r   r   zT.Optional[T.Dict[str, str]]rQ   r   r   Nr   r0   rr   r,   r   r   r   r   r   z'BuildTarget'rr   r   r   r   r   r   )
r   r   r   r   rS   rz   r   r   r   r   r   s   @rK   r   r   m   sK     8<9=15	:$:4: 7:  /	: r[   r   c                      \ rS rSrSrSrg)ArmLtdClangCCompiler   armltdclangr]   Nr   r   r   r   idr   r]   r[   rK   r   r      s    	Br[   r   c                      \ rS rSrSrSrg)AppleClangCCompiler   zHandle the differences between Apple Clang and Vanilla Clang.

Right now this just handles the differences between the versions that new
C standards were added.
r]   N)r   r   r   r   __doc__r   r]   r[   rK   r   r      s    r[   r   c                  J    \ rS rSrSrSrSrSrSr   S       S	S jjr	Sr
g)
EmscriptenCCompiler   
emscriptenz	>=1.38.35z>=3.1.45Nc
                    U(       d  [        S5      e[        US5      (       d  [        S5      e[        R                  XX#XEXgXS9
  g )Nz;Emscripten compiler can only be used for cross compilation.z	>=1.39.19z$Meson requires Emscripten >= 1.39.19)rR   r   rQ   )r   r	   r   rS   
rI   rU   rV   rW   rX   rP   rY   rR   r   rQ   s
             rK   rS   EmscriptenCCompiler.__init__   sL    
  !^__w44 !GHHg $(/ 	  	Lr[   r]   r   r   )r   r   r   r   r   _C17_VERSION_C18_VERSION_C2X_VERSION_C23_VERSIONrS   r   r]   r[   rK   r   r      s\    	B LLLL 8<9=15	L$L4L 7L  /	L Lr[   r   c                  h   ^  \ rS rSrSr  S     S	S jjrS
U 4S jjrSSS jjrSSS jjrSr	U =r
$ )ArmclangCCompiler   z
Keil armclang
c	                    [         R                  XX#XEXgUS9	  [        R                  " U 5        SS/n	/ U	U	S/-   U	SS/-   S/S.U l        g r   )rD   rS   r   r   
rI   rU   rV   rW   rX   rP   rY   rR   rQ   r   s
             rK   rS   ArmclangCCompiler.__init__   sh     	4;\ 	 	K!!$'$o6!00I;>0I|3LL)7(8	:r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  / SQSS9  U$ )Nrx   for mypy)r3   r4   r6   Tr<   ry   rz   r{   r   r   r}   set_versionsrI   r   r   std_optr   s       rK   rz   ArmclangCCompiler.get_options   s^    w"$''.)'7#8#899E:E92=r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ r   r   r   s         rK   r   %ArmclangCCompiler.get_option_std_args   r   r[   c                    / $ r   r]   )rI   r   rr   r   s       rK   r   &ArmclangCCompiler.get_option_link_args       	r[   r   r   r   r   r   r   r   )r   r   r   r   r   rS   rz   r   r   r   r   r   s   @rK   r   r      sC     8<15:$:4:  /: r[   r   c                  x   ^  \ rS rSrSr   S	       S
S jjrSU 4S jjrSSS jjrSSS jjrSS jr	Sr
U =r$ )GnuCCompiler   z>=3.4.0c
                H   [         R                  XX#XEXgU	S9	  [        R                  " X5        S/n
[        U R                  U R
                  5      (       a  U
S/-  n
/ U
U
S/-   U
SS/-   U
SS/-   U R                  [        5      -   U R                  [        5      -   S.U l	        g )Nr   r   r   r   r   r   )
rD   rS   r   r	   rW   _INVALID_PCH_VERSIONsupported_warn_argsr   r   r   r   s              rK   rS   GnuCCompiler.__init__   s    
 	4;RV  uA  	BT+$I4<<)B)BCC/!22!00I;>0I|3LL):i=V)V)-)A)ABY)Z*[)-)A)ABT)U*V	Xr[   c                  > [         TU ]  5       nU R                  R                  5       (       d  U R                  R	                  5       (       a>  U R                  S5      n[        R                  " U R                  U5      S[        5      X'   U$ r   r   r   s      rK   rz   GnuCCompiler.get_options  r   r[   c                    / n[        SU R                  S9nU R                  XRX5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ )Nc_std)machiner   r   )r   rX   r   r   r   r   )rI   r   rr   r   r   r   rx   s          rK   r    GnuCCompiler.get_option_std_args  sZ    )9)9:((6F#s####&=KK#&r[   c                :   U R                   R                  5       (       d  U R                   R                  5       (       a\  U R                  SX!U5      n[	        U[
        5      (       d   eUR                  5       nU H  n[	        U[        5      (       a  M   e   U$ / $ r   r   r   s          rK   r   !GnuCCompiler.get_option_link_args  s    99!!TYY%8%8%:%://	3
SFfd++++ &D!!S)))) K	r[   c                F    SS[         R                  R                  U5      /$ )Nz-fpch-preprocessz-include)ospathbasename)rI   pch_dirrm   s      rK   get_pch_use_argsGnuCCompiler.get_pch_use_args   s    "J0@0@0HIIr[   r   r   r   r   r   r   r   )r  r   rm   r   r   r   )r   r   r   r   r  rS   rz   r   r   r  r   r   r   s   @rK   r  r     s]    $ 8<9=15	X$X4X 7X  /	X$
J Jr[   r  c                  0    \ rS rSr  S     SS jjrSrg)PGICCompileri$  Nc	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g Nr   rD   rS   r    rT   s	            rK   rS   PGICCompiler.__init__%  1     	4;\ 	 	KT"r[   r]   r   r   )r   r   r   r   rS   r   r]   r[   rK   r  r  $  s.     8<15#$#4#  /# #r[   r  c                  L   ^  \ rS rSrSr  S     SS jjrSU 4S jjrSrU =r$ )	NvidiaHPC_CCompileri.  
nvidia_hpcc	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  r  rT   s	            rK   rS   NvidiaHPC_CCompiler.__init__2  r  r[   c                   > [         TU ]  5       n/ SQnXR                  S5         n[        U[        R
                  5      (       d   S5       eUR                  USS9  U$ )N)r1   r3   r4   r6   r7   r8   rx   r   Tr   r   )rI   r   cppstd_choicesr   r   s       rK   rz   NvidiaHPC_CCompiler.get_options:  s^    w"$C0078'7#8#899E:E9^6r[   r]   r   r   r   )	r   r   r   r   r   rS   rz   r   r   r   s   @rK   r   r   .  s9    	B 8<15#$#4#  /# r[   r   c                  r   ^  \ rS rSr   S       S	S jjrS
U 4S jjrSSS.     SU 4S jjjrSrU =r$ )ElbrusCCompileriC  Nc
                ^    [         R                  XX#XEXgU	S9	  [        R                  " U 5        g r  )rD   rS   r   r   s
             rK   rS   ElbrusCCompiler.__init__D  s1    
 	4;\ 	 	K%r[   c                  > [         TU ]  5       n/ SQnU/ SQ-  n[        U R                  S5      (       a  USS/-  n[        U R                  S5      (       a"  [        U R                  S5      (       a  U/ SQ-  n[        U R                  S	5      (       a  U/ SQ-  n[        U R                  S
5      (       a  U/ SQ-  nU R	                  S5      nX   n[        U[        R                  5      (       d   S5       eUR                  U5        U$ )N)r1   r2   r4   gnu89gnu9xgnu99)r=   r>   r?   z	>=1.20.00r6   gnu11z	>=1.21.00z<1.22.00)r3   r5   gnu90gnu1xr@   z	>=1.23.00z	>=1.26.00)r7   r8   rA   rB   gnu17gnu18rx   r   	ry   rz   r	   rW   r{   r   r   r}   r   rI   r   stdsr   r   r   s        rK   rz   ElbrusCCompiler.get_optionsM  s    w"$?BB4<<55UG$$D4<<55/$,,Xb:c:cDDD4<<55DDD4<<55TTD''.)'7#8#899E:E9T"r[   rh   c               2   > US:X  a  g[         TU ]  XUUUS9$ )Nlchmod)FFrh   )ry   has_function)rI   funcnamerl   rr   ri   rj   r   s         rK   r:  ElbrusCCompiler.has_functiona  s3     x7'#3=5A ( C Cr[   r]   r   r   r   )r;  r   rl   r   rr   r   ri   T.Optional[T.List[str]]rj   r   r   r   )	r   r   r   r   rS   rz   r:  r   r   r   s   @rK   r(  r(  C  sl     8<9=15	&$&4& 7&  /	&* <@FJC!8C#CCObC Cr[   r(  c                  V   ^  \ rS rSr  S     SS jjrSU 4S jjrS	S
S jjrSrU =r$ )IntelCCompileril  c	                    [         R                  XX#XEXgUS9	  [        R                  " U 5        SU l        SS/n	/ U	S/-   U	SS/-   U	SS/-   U	S/-   S.U l        g )Nr   zc-headerr   z-w3z-diag-disable:remarkr   r   )rD   rS   r   lang_headerr   r   s
             rK   rS   IntelCCompiler.__init__m  s     	4;\ 	 	K%%d+%$e,!04J3KK0I?U3VV0I?U3VV(9YK(G	Ir[   c                  > [         TU ]  5       nSS/n[        U R                  S5      (       a  US/-  nU R	                  S5      nX   n[        U[        R                  5      (       d   S5       eUR                  USS9  U$ )	Nr1   r4   z>=16.0.0r6   rx   r   Tr   r4  r5  s        rK   rz   IntelCCompiler.get_options|  s    w"$u~4<<44UGOD''.)'7#8#899E:E9Tt,r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ r   r   r   s         rK   r   "IntelCCompiler.get_option_std_args  sJ    ((ZH#s####&=KK#&r[   )rA  r   r   r   r   r   r   	r   r   r   r   rS   rz   r   r   r   r   s   @rK   r?  r?  l  s=     8<15I$I4I  /I	 r[   r?  c                      \ rS rSrSrSrg)IntelLLVMCCompileri  z
intel-llvmr]   Nr   r]   r[   rK   rI  rI    s    	Br[   rI  c                  >   ^  \ rS rSrSrSU 4S jjrSSS jjrSrU =r$ )	VisualStudioLikeCCompilerMixini  z3Shared methods that apply to MSVC-like C compilers.c                   > [         TU ]  5       nU R                  S5      n[        R                  " U R                  U5      S[        5      X'   U$ r   )ry   rz   r{   r   r   r   r'   r   s      rK   rz   *VisualStudioLikeCCompilerMixin.get_options  sM    w"$''	211!!#&8	 r[   c                    U R                  SX!U5      n[        U[        5      (       d   eUR                  5       nU H  n[        U[        5      (       a  M   e   U$ r   )r   r   r   r   r   r   s          rK   r   3VisualStudioLikeCCompilerMixin.get_option_link_args  sV    ++IsJO&$''''"KKMAa%%%% r[   r]   )r   r)   r   r   )	r   r   r   r   r   rz   r   r   r   r   s   @rK   rK  rK    s    = r[   rK  c                  f   ^  \ rS rSrSrSr  S         SS jjrS	U 4S jjrS
SS jjrSr	U =r
$ )VisualStudioCCompileri  z>=19.28c
                ^    [         R                  XX#XEXhU	S9	  [        R                  " X5        g r  )rD   rS   r   )
rI   rU   rV   rW   rX   rP   rY   r   rR   rQ   s
             rK   rS   VisualStudioCCompiler.__init__  s3     	4;(4 	 	6 	d+r[   c                r  > [         TU ]  5       nSS/n[        U R                  U R                  5      (       a  US/-  n[        U R                  U R
                  5      (       a  USS/-  nU R                  S5      nX   n[        U[        R                  5      (       d   S5       eUR                  USSS	9  U$ )
Nr1   r4   r6   r7   r8   rx   r   T)r<   gnu_deprecated)ry   rz   r	   rW   _C11_VERSIONr   r{   r   r   r}   r   r5  s        rK   rz   !VisualStudioCCompiler.get_options  s    w"$u~4<<):):;;UGOD4<<):):;;UEN"D''.)'7#8#899E:E9TtDAr[   c                    / nU R                  SX!U5      nUS;   a  UR                  S5        U$ US;   a  UR                  S5        U$ )Nrx   >   r6   z/std:c11>   r7   r8   z/std:c17)r   r   r   s         rK   r   )VisualStudioCCompiler.get_option_std_args  sR    ((ZH '>KK
#  N"KK
#r[   r]   r   )rU   r   rV   r   rW   r   rX   r.   rP   r   rY   r   r   r   rR   r   rQ   r   r   r   r   )r   r   r   r   rV  r   rS   rz   r   r   r   r   s   @rK   rQ  rQ    sS    LL 8<15,,'4,>A,4,  /,	 	r[   rQ  c                  F    \ rS rSr  S         SS jjrSS	S jjrSrg)
ClangClCCompileri  Nc	                `    [         R                  U / XX4XWUS9	  [        R                  " X5        g r  )rD   rS   r   	rI   rV   rW   rX   rP   rY   r   rR   rQ   s	            rK   rS   ClangClCCompiler.__init__  s5     	4W{(4 	 	6 	  .r[   c                r    U R                  SX!U5      n[        U[        5      (       d   eUS:w  a  SU 3/$ / $ )Nrx   r   z/clang:-std=)r   r   r   )rI   r   rr   r   rx   s        rK   r   $ClangClCCompiler.get_option_std_args  sE    ((ZH#s####&="3%())	r[   r]   r   rV   r   rW   r   rX   r.   rP   r   rY   r   r   r   rR   r   rQ   r   r   r   )r   r   r   r   rS   r   r   r]   r[   rK   r[  r[    sC     8<15//'4/>A/4/  // r[   r[  c                  b   ^  \ rS rSrSr  S         SS jjrS	U 4S jjrS
SS jjrSrU =r	$ )IntelClCCompileri  z!Intel "ICL" compiler abstraction.c	                `    [         R                  U / XX4XWUS9	  [        R                  " X5        g r  )rD   rS   r   r]  s	            rK   rS   IntelClCCompiler.__init__  s5     	4W{(4 	 	6 	&..t<r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  / SQ5        U$ Nrx   r   )r1   r4   r6   r   r   s       rK   rz   IntelClCCompiler.get_options  Y    w"$''.)'7#8#899E:E923r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:X  a  [        R                  " SSS9  U$ US:w  a  UR                  SU-   5        U$ )Nrx   r1   zUICL doesn't explicitly implement c89, setting the standard to 'none', which is close.T)oncer   z/Qstd:)r   r   r   r   logr   r   s         rK   r   $IntelClCCompiler.get_option_std_args  sj    ((ZH#s####%<HHlswx  F]KK3'r[   r]   r   ra  r   r   r   )
r   r   r   r   r   rS   rz   r   r   r   r   s   @rK   rc  rc    sL    + 8<15=='4=>A=4=  /= r[   rc  c                      \ rS rSrSrSrg)IntelLLVMClCCompileri  zintel-llvm-clr]   Nr   r]   r[   rK   ro  ro    s    	Br[   ro  c                  Z   ^  \ rS rSr  S       SS jjrSU 4S jjrS	S
S jjrSrU =r$ )ArmCCompileri	  c	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r   rT   s	            rK   rS   ArmCCompiler.__init__
  s3     	4;(4 	 	6 	T"r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  / SQ5        U$ rg  r   r   s       rK   rz   ArmCCompiler.get_options  ri  r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ Nrx   r   z--r   r   s         rK   r    ArmCCompiler.get_option_std_args  J    ((ZH#s####&=KKs
#r[   r]   r   r   r   r   r   rG  r   s   @rK   rq  rq  	  sA     8<15##'4#4#  /# r[   rq  c                     ^  \ rS rSr  S       SS jjrSS jrSU 4S jjrSS jrSSS jjrSS jr	SS jr
SS	 jrSS
 jrSS jrSrU =r$ )CcrxCCompileri$  c	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r   rT   s	            rK   rS   CcrxCCompiler.__init__%  1     	4;\ 	 	Kd#r[   c                    S/$ )Nz-nologor]   r^   s    rK   get_always_argsCcrxCCompiler.get_always_args.  
    {r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  SS/5        U$ Nrx   r   r1   r4   r   r   s       rK   rz   CcrxCCompiler.get_options1  \    w"$''.)'7#8#899E:E9eU^,r[   c                    / $ r   r]   r^   s    rK   r_    CcrxCCompiler.get_no_stdinc_args9  r  r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:X  a  UR                  S5        U$ US:X  a  UR                  S5        U$ )Nrx   r1   z-lang=cr4   z	-lang=c99r   r   s         rK   r   !CcrxCCompiler.get_option_std_args<  sb    ((ZH#s####%<KK	"  E\KK$r[   c                    / $ r   r]   r^   s    rK   get_compile_only_args#CcrxCCompiler.get_compile_only_argsF  r  r[   c                    S/$ )Nz-optimize=0r]   r^   s    rK   get_no_optimization_args&CcrxCCompiler.get_no_optimization_argsI  s
    r[   c                    SU 3/$ )Nz-output=obj=r]   rI   r   s     rK   get_output_argsCcrxCCompiler.get_output_argsL  s    vh'((r[   c                    S/$ Nz-change_message=errorr]   r^   s    rK   get_werror_argsCcrxCCompiler.get_werror_argsO      '((r[   c                    US:X  a  SnSU-   /$ )N .z	-include=r]   rI   r  	is_systems      rK   get_include_argsCcrxCCompiler.get_include_argsR  s    2:Dd"##r[   r]   r   r   r   r   r   r   r   r   r   r   r  r   r  r   r   r   )r   r   r   r   rS   r  rz   r_   r   r  r  r  r  r  r   r   r   s   @rK   r{  r{  $  sd     8<15$$'4$4$  /$))$ $r[   r{  c                     ^  \ rS rSr  S       SS jjrSU 4S jjrSS jrSSS jjrSS jrSS jr	SS jr
SS	 jrSS
 jrSrU =r$ )Xc16CCompileriX  c	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r   rT   s	            rK   rS   Xc16CCompiler.__init__Y  r~  r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  SS/SS9  U$ )Nrx   r   r1   r4   Tr   r   r   s       rK   rz   Xc16CCompiler.get_optionsa  sa    w"$''.)'7#8#899E:E9eU^6r[   c                    / $ r   r]   r^   s    rK   r_    Xc16CCompiler.get_no_stdinc_argsi  r  r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a%  UR                  S5        UR                  SU-   5        U$ )Nrx   r   z-ansir   r   r   s         rK   r   !Xc16CCompiler.get_option_std_argsl  sV    ((ZH#s####&=KK KK#&r[   c                    / $ r   r]   r^   s    rK   r  #Xc16CCompiler.get_compile_only_argsu  r  r[   c                    S/$ Nz-O0r]   r^   s    rK   r  &Xc16CCompiler.get_no_optimization_argsx  	    wr[   c                    SU 3/$ Nz-or]   r  s     rK   r  Xc16CCompiler.get_output_args{      VHr[   c                    S/$ r  r]   r^   s    rK   r  Xc16CCompiler.get_werror_args~  r  r[   c                    US:X  a  SnSU-   /$ Nr  r  z-Ir]   r  s      rK   r  Xc16CCompiler.get_include_args      2:Dt}r[   r]   r   r   r   r   r   r   r  r  )r   r   r   r   rS   rz   r_   r   r  r  r  r  r  r   r   r   s   @rK   r  r  X  s_     8<15$$'4$4$  /$) r[   r  c                  t   ^  \ rS rSr  S	       S
S jjrSU 4S jjrSS jrSS jrSS jrSS jr	Sr
U =r$ )CompCertCCompileri  c	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r   rT   s	            rK   rS   CompCertCCompiler.__init__  s1     	4;\ 	 	K!!$'r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  SS/5        U$ r  r   r   s       rK   rz   CompCertCCompiler.get_options  r  r[   c                    S/$ r  r]   r^   s    rK   r  *CompCertCCompiler.get_no_optimization_args  r  r[   c                    SU 3/$ r  r]   r  s     rK   r  !CompCertCCompiler.get_output_args  r  r[   c                    S/$ )Nz-Werrorr]   r^   s    rK   r  !CompCertCCompiler.get_werror_args  r  r[   c                    US:X  a  SnSU-   /$ r  r]   r  s      rK   r  "CompCertCCompiler.get_include_args  r  r[   r]   r   r   r   r   r  r  )r   r   r   r   rS   rz   r  r  r  r  r   r   r   s   @rK   r  r    sP     8<15(('4(4(  /( r[   r  c                  n   ^  \ rS rSr  S       S	S jjrS
S jrSU 4S jjrS
S jrSSS jjrSr	U =r
$ )TICCompileri  c	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r   rT   s	            rK   rS   TICCompiler.__init__  s1     	4;\ 	 	KD!r[   c                    / $ r   r]   r^   s    rK   r  TICCompiler.get_always_args  r  r[   c                   > [         TU ]  5       nU R                  S5      nX   n[        U[        R
                  5      (       d   S5       eUR                  / SQ5        U$ rg  r   r   s       rK   rz   TICCompiler.get_options  ri  r[   c                    / $ r   r]   r^   s    rK   r_   TICCompiler.get_no_stdinc_args  r  r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ rw  r   r   s         rK   r   TICCompiler.get_option_std_args  ry  r[   r]   r   r   r   r   r   r   )r   r   r   r   rS   r  rz   r_   r   r   r   r   s   @rK   r  r    sK     8<15""'4"4"  /" r[   r  c                      \ rS rSrSrSrg)C2000CCompileri  c2000r]   Nr   r]   r[   rK   r  r    s    	Br[   r  c                      \ rS rSrSrSrg)C6000CCompileri  c6000r]   Nr   r]   r[   rK   r  r    s    	Br[   r  c                  h   ^  \ rS rSrSr  S       S	S jjrS
S jrSU 4S jjrSSS jjrSr	U =r
$ )MetrowerksCCompilerARMi  mwccarmc	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  rD   rS   r"   rT   s	            rK   rS   MetrowerksCCompilerARM.__init__  1     	4;\ 	 	K##D)r[   c                0    [         R                  " US 5      $ r   )r#   getrI   instruction_sets     rK   get_instruction_set_args/MetrowerksCCompilerARM.get_instruction_set_args  s    +//FFr[   c                J   > [         TU ]  5       nU R                  US/5        U$ Nr4   ry   rz   _update_language_stdsrI   r   r   s     rK   rz   "MetrowerksCCompilerARM.get_options  '    w"$""4%1r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a"  UR                  S5        UR                  U5        U$ )Nrx   r   z-langr   r   s         rK   r   *MetrowerksCCompilerARM.get_option_std_args  sR    ((ZH#s####&=KK KKr[   r]   r   r   r  r   r   r=  r   r   r   r   r   r   r   r   rS   r  rz   r   r   r   r   s   @rK   r  r    sL    	B 8<15**'4*4*  /*G
 r[   r  c                  h   ^  \ rS rSrSr  S       S	S jjrS
S jrSU 4S jjrSSS jjrSr	U =r
$ )"MetrowerksCCompilerEmbeddedPowerPCi  mwcceppcc	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  r  rT   s	            rK   rS   +MetrowerksCCompilerEmbeddedPowerPC.__init__  r  r[   c                0    [         R                  " US 5      $ r   )r$   r  r  s     rK   r  ;MetrowerksCCompilerEmbeddedPowerPC.get_instruction_set_args  s    ,00$GGr[   c                J   > [         TU ]  5       nU R                  US/5        U$ r  r  r  s     rK   rz   .MetrowerksCCompilerEmbeddedPowerPC.get_options  r  r[   c                    / nU R                  SX!U5      n[        U[        5      (       d   eUS:w  a  UR                  SU-   5        U$ )Nrx   r   z-lang r   r   s         rK   r   6MetrowerksCCompilerEmbeddedPowerPC.get_option_std_args  sJ    ((ZH#s####&=KK3'r[   r]   r   r   r  r   r   r   r  r   s   @rK   r  r    sL    	B 8<15**'4*4*  /*H
 r[   r  c                  8    \ rS rSrSr  S       SS jjrSrg)TaskingCCompileri  taskingNc	                ^    [         R                  XX#XEXgUS9	  [        R                  " U 5        g r  )rD   rS   r%   rT   s	            rK   rS   TaskingCCompiler.__init__  s1     	4;\ 	 	K  &r[   r]   r   r   )r   r   r   r   r   rS   r   r]   r[   rK   r  r    s;    	B 8<15'''4'4'  /' 'r[   r  )i
__future__r   os.pathr  typingTr  r   r   r   mesonlibr   r	   c_function_attributesr   mixins.appler   r   mixins.cliker   mixins.ccrxr   mixins.xc16r   mixins.compcertr   	mixins.tir   
mixins.armr   r   mixins.visualstudior   r   
mixins.gnur   r   r   r   mixins.intelr   r   mixins.clangr   r   mixins.elbrusr   
mixins.pgir    mixins.emscriptenr!   mixins.metrowerksr"   r#   r$   mixins.taskingr%   	compilersr&   r'   r(   TYPE_CHECKINGr)   rj   r*   	envconfigr+   rd   r,   linkers.linkersr-   r.   r/   buildr0   CompilerMixinBaseobjectr~   rD   r   r   r   r   r   r  r  r   r(  r?  rI  rK  rQ  r[  rc  ro  rq  r{  r  r  r  r  r  r  r  r  )rx   s   0rK   <module>r"     sb  
 #      6 4 = ' % % - ! 5 > - C M 3 ) # . 1 Z +  ??4)')/(+# X 1s3qr7)_1 1 n n0x 0f*Z	 *Z> 
,o~ L/> L8$() $N6J8[) 6Jr#;	 #+y *&Cni &CR!)9 !H 
%6 ,$L*H) $Nz?4RT] $46TV_ @+ 
;	 61$L) 1$h,L) ,\() >*i @[ [ / 8);Y 6	'	 	'[ 2s   I(