+
    UBi                       ^ RI Ht ^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ^RI
HtHt ^RIHtHtHtHt ^RIHtH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  ^RI!H"t"H#t# ^RI$H%t%H&t&H't'H(t( ^RI)H*t*H+t+ ^RI,H-t-H.t. ^RI/H0t0 ^RI1H2t2 ^RI3H4t4 ^RI5H6t6 ^RI5H7t7H8t8 ^RI9H:t:H;t; ]Px                  '       d(   ^RIH=t= ^RI>H?t? ^RI@HAtA ^RIBHCtC ^RI
HDtD ^RIEHFtF ]tGM]HtG. RWOtI]I]I U u. uF  p RV R,           2NK  	  up ,          tI]I. RXO,          tIR R  ltJ ! R! R"]]4      tK ! R# R$]G4      tL ! R% R&]L].]-]K4      tM ! R' R(]M4      tN ! R) R*]]]M4      tO ! R+ R,]4]M4      tP ! R- R.] ]K4      tQ ! R/ R0]L]&]%]K4      tR ! R1 R2]2]K4      tS ! R3 R4]2]K4      tT ! R5 R6]0]K4      tU ! R7 R8]*]K4      tV ! R9 R:]M4      tW ! R; R<]G4      tX ! R= R>]G4      tY ! R? R@]Y]X]"]K4      tZ ! RA RB]Y]X]#]K4      t[ ! RC RD]X]+]K4      t\ ! RE RF]\4      t] ! RG RH]]K4      t^ ! RI RJ]]K4      t_ ! RK RL]]K4      t` ! RM RN]`4      ta ! RO RP]`4      tb ! RQ RR]6]K4      tc ! RS RT]6]K4      td ! RU RV];]:]R4      teR# u up i )Y    )annotationsN)options)mlog)MesonExceptionversion_compare)gnu_winlibsmsvc_winlibsCompilerCompileCheckMode)CXX_FUNC_ATTRIBUTESC_FUNC_ATTRIBUTES)AppleCompilerMixinAppleCPPStdsMixin)CLikeCompiler)CcrxCompiler)
TICompiler)ArmCompilerArmclangCompiler)MSVCCompilerClangClCompiler)GnuCompiler
GnuCPPStdsgnu_common_warning_argsgnu_cpp_warning_args)IntelGnuLikeCompilerIntelVisualStudioLikeCompiler)ClangCompilerClangCPPStds)ElbrusCompiler)PGICompiler)EmscriptenMixin)MetrowerksCompiler)mwccarm_instruction_set_argsmwcceppc_instruction_set_args)Xc32CompilerXc32CPPStds)MutableKeyedOptionDictType)
Dependency)Environment)DynamicLinker)MachineChoice)BuildTargetgnu:   NNc               $    V ^8  d   QhRRRRRR/# )   ehstrargsT.List[str]returnNone )formats   "=/usr/lib/python3.14/site-packages/mesonbuild/compilers/cpp.py__annotate__r:   5   s&     L LC L{ Lt L    c                    V R 8X  d   VP                  R4       R# V R9   d   \        P                  ! RV  R2RR7       R# R# )none-fno-exceptionsz"non-MSVC compilers do not support z9 exception handling. You may want to set eh to 'default'.FfatalN>   cs)appendr   warning)r1   r3   s   &&r9   non_msvc_eh_optionsrE   5   sD    	V|%&	z	9" >> >EJ	L 
r;   c                     a  ] tR t^<tR R ltRtRR R llt]R R l4       tR	 R
 lt	R R lt
R R ltR V 3R lltRRRR/R V 3R llltR R lt]P                   ! 4       R R l4       tR V 3R lltRtV ;t# )CPPCompilerc                    V ^8  d   QhRRRR/# )r0   namer2   r5   r7   )r8   s   "r9   r:   CPPCompiler.__annotate__=   s     I I I Ir;   c                	     \         P                  ! V\        V,          4      #   \         d    \	        R T R24      hi ; i)zUnknown function attribute "")r   getr   KeyErrorr   )selfrI   s   &&r9   attribute_check_func CPPCompiler.attribute_check_func=   sG    	I&**41B41HII 	I #?vQ!GHH	Is   !$ ?cppNc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# r0   ccacher4   exelistversionr2   for_machiner+   envr)   linkerT.Optional['DynamicLinker']full_versionT.Optional[str]r7   )r8   s   "r9   r:   rJ   E   sA     % %{ %[ %3 %]j %!%+F%.%r;   c                	f    \         P                  ! WW#WEWgR 7       \        P                  ! V 4       R# rZ   r\   N)r
   __init__r   rO   rU   rV   rW   rX   rY   rZ   r\   s   &&&&&&&&r9   ra   CPPCompiler.__init__E   s*     	$+!'	Dt$r;   c                   V ^8  d   QhRR/# )r0   r5   r2   r7   )r8   s   "r9   r:   rJ   N   s      S r;   c                	    R # )zC++r7   )clss   &r9   get_display_language CPPCompiler.get_display_languageM   s    r;   c                   V ^8  d   QhRR/# r0   r5   r4   r7   )r8   s   "r9   r:   rJ   Q   s      K r;   c                	    R .# )z-nostdinc++r7   rO   s   &r9   get_no_stdinc_argsCPPCompiler.get_no_stdinc_argsQ   
    r;   c                   V ^8  d   QhRR/# rj   r7   )r8   s   "r9   r:   rJ   T   s       r;   c                	    R .# )z-nostdlib++r7   rl   s   &r9   get_no_stdlib_link_args#CPPCompiler.get_no_stdlib_link_argsT   ro   r;   c                    V ^8  d   QhRRRR/# )r0   work_dirr2   r5   r6   r7   )r8   s   "r9   r:   rJ   W   s     L LS LT Lr;   c                	,    R pV P                  VRV4      # )z2class breakCCompiler;int main(void) { return 0; }
zsanitycheckcpp.cc)_sanity_check_impl)rO   ru   codes   && r9   sanity_checkCPPCompiler.sanity_checkW   s    D&&x1DdKKr;   c                    V ^8  d   QhRRRR/# r0   moder   r5   r4   r7   )r8   s   "r9   r:   rJ   [   s     H H,< H Hr;   c                	2   < \         SV `  V4      R .,           # )z-fpermissive)superget_compiler_check_args)rO   r}   	__class__s   &&r9   r   #CPPCompiler.get_compiler_check_args[   s     w.t47GGGr;   
extra_argsdependenciesc               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r0   hnamer2   symbolprefixr   zGT.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]]r    T.Optional[T.List['Dependency']]r5   T.Tuple[bool, bool]r7   )r8   s   "r9   r:   rJ   a   s9     8 8s 8C 8 8&m8(H8Tg8r;   c               	   < \         S	V `  WVVVR 7      w  rgV'       d   RV3# Vf   . pV RV RV R2pV P                  WVR 7      # )r   r   Tz
        #include <z>
        using z&;
        int main(void) { return 0; })r   has_header_symbolcompiles)
rO   r   r   r   r   r   foundcachedtr   s
   &&&&$$   r9   r   CPPCompiler.has_header_symbola   s     1%=G?K 2 M <J ' h '* }}Q*6  8 	8r;   c                    V ^8  d   QhRRRR/# )r0   cpp_std_valuer2   r5   boolr7   )r8   s   "r9   r:   rJ   t   s      s t r;   c                	p   VP                  R 4      '       g   Q hRpV P                  W!.\        P                  R7      ;_uu_ 4       pVP                  ^ 8X  d'   \
        P                  ! RV R2R4        RRR4       R# \
        P                  ! RV R2R4        RRR4       R	#   + '       g   i     R# ; i)
-std=zint i = static_cast<int>(0);)r   r}   zCompiler accepts :YESNTNOF)
startswithcompiler   COMPILE
returncoder   debug)rO   r   CPP_TESTps   &&  r9   _test_cpp_std_argCPPCompiler._test_cpp_std_argt   s    ''0000 2\\(EUE]E]\^^bc||q 

.}oQ?G _^
 

.}oQ?F _^^^s   .B$>B$$B5	c                    V ^8  d   QhRRRR/# )r0   cpp_stdr2   r5   r7   )r8   s   "r9   r:   rJ      s     "N "N# "N# "Nr;   c                	   R RRRRRRRRR	R
RRRRRRRRRRRRR/pV P                   \        . RO4      9   g   Q hW9  d
   RV,           # WV,          3 F'  pRV,           pV P                  V4      '       g   K%  Vu # 	  \        RV 24      h)c++11c++0xgnu++11zgnu++0xc++14c++1ygnu++14zgnu++1yc++17c++1zgnu++17zgnu++1zc++20c++2agnu++20gnu++2ac++23zc++2bzgnu++23zgnu++2bc++26zc++2czgnu++26zgnu++2cr   z#C++ Compiler does not support -std=)clanglccgcc
emscriptenarmltdclang
intel-llvm
nvidia_hpczxc32-gcc)id	frozensetr   r   )rO   r   CPP_FALLBACKSir   s   &&   r9   _find_best_cpp_stdCPPCompiler._find_best_cpp_std   s     WyWyWyWyWyWy
  ww)  %A  B  B  	B  B'W$$12A#aKM%%m44$$ 3
 B7)LMMr;   c                   V ^8  d   QhRR/# r0   r5   'MutableKeyedOptionDictType'r7   )r8   s   "r9   r:   rJ            9 r;   c                	   < \         SV `  4       pV P                  R 4      pVP                  V\        P
                  ! R\        4      /4       V# )stdrR   )r   get_optionsform_compileropt_keyupdater   UserStdOptionALL_STDSrO   optskeyr   s   &  r9   r   CPPCompiler.get_options   sJ    w"$''.&&uh7
 	 r;   r7   NN)__name__
__module____qualname____firstlineno__rP   languagera   classmethodrg   rm   rr   ry   r   r   r   	functools	lru_cacher   r   __static_attributes____classcell__r   s   @r9   rG   rG   <   s    I H%  LH H8pt8KO8 8&$ "N "NH r;   rG   c                  \    ] tR t^tRtR R lt]P                  ! R4      R R l4       tRt	R# )_StdCPPLibMixinz*Detect whether to use libc++ or libstdc++.c                    V ^8  d   QhRRRR/# )r0   rY   r)   r5   r2   r7   )r8   s   "r9   r:   _StdCPPLibMixin.__annotate__   s      K C r;   c                	    V P                  R R4      ^ ,          '       d   R MRpV P                  VRR4      ^ ,          pV'       d   RpV# RpV# )rW    ciso646_LIBCPP_VERSIONzc++stdc++)
has_headerr   )rO   rY   header	is_libcxxlibs   &&   r9   language_stdlib_provider(_StdCPPLibMixin.language_stdlib_provider   sP    "ooi<Q??Y**63DbI!L	 e
 '/
r;   Nc                   V ^8  d   QhRR/# rj   r7   )r8   s   "r9   r:   r      s     o o or;   c                    V P                  R4       Uu. uF  pRV 2NK
  	  ppV P                  V P                  4      pV P                  V. 4      e   VRV 2.,           # \	        R4      hu upi )zDetect the C++ stdlib and default search dirs

As an optimization, this method will cache the value, to avoid building the same values over and over

:param env: An Environment object
:raises MesonException: If a stdlib cannot be determined
	librariesz-Lz-lzNCould not detect either libc++ or libstdc++ as your C++ stdlib implementation.)get_compiler_dirsr   environmentfind_libraryr   )rO   dsearch_dirsr   s   &   r9   language_stdlib_only_link_flags/_StdCPPLibMixin.language_stdlib_only_link_flags   s{     *.)?)?)LM)LAA3x)LM++D,<,<=S"%1Bse*-- mnn Ns   A+r7   )
r   r   r   r   __doc__r   r   r   r   r   r7   r;   r9   r   r      s+    4 o or;   r   c                     a  ] tR t^tRR R lltR V 3R lltRR R lltRR R lltRR	 R
 lltR R lt	R V 3R llt
RtV ;t# )ClangCPPCompilerc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# r0   rU   r4   rV   rW   r2   rX   r+   rY   r)   rZ   r[   definesT.Optional[T.Dict[str, str]]r\   r]   r7   )r8   s   "r9   r:   ClangCPPCompiler.__annotate__   sK     : :{ :[ :3 :]j :!:+F:6:  /:r;   c	                	    \         P                  WW#VWVVR 7       \        P                  ! W4       RR.p	R. RV	RV	R.,           RV	RR.,           R	R
./V n        R# r`   -Wall-Winvalid-pch012-Wextra3
-Wpedantic
everythingz-WeverythingN)rG   ra   r   	warn_args
rO   rU   rV   rW   rX   rY   rZ   r   r\   default_warn_argss
   &&&&&&&&& r9   ra   ClangCPPCompiler.__init__   su     	T7[ l 	 	Lt-$o6r00I;>0I|3LL&(8	:r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r      s      9 r;   c                	  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      p\        P                  ! V P                  V4      RR4      W&   V P                  R4      p\        P                  ! V P                  V4      RR	4      W&   V P                  P                  4       '       g!   V P                  P                  4       '       d?   V P                  R
4      p\        P                  ! V P                  V4      R\        4      W&   V# )r1   C++ exception handling type.defaultchoicesrttiEnable RTTITdebugstlSTL debug modeFwinlibs&Standard Win libraries to link againstr=   r  arB   sc)r   r   r   r   UserComboOptionmake_option_nameUserBooleanOptioninfo
is_windows	is_cygwinUserStringArrayOptionr   r   s   &  r9   r   ClangCPPCompiler.get_options   s   w"$''-++!!#&*7	9	 ''/--!!#&	
 ''
3--!!#&	
 99!!TYY%8%8%:%:++I6C55%%c*8DI r;   c               $    V ^8  d   QhRRRRRR/# r0   targetz'BuildTarget'
subprojectr]   r5   r4   r7   )r8   s   "r9   r:   r     s"      m  do r;   c                	   . pV P                  R W4      pV P                  RW4      pV P                  RW4      p\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q h\	        Wc4       V'       dP   VP                  R4       \        V P                  R4      '       d#   VP                  R4       VP                  R4       V'       g   VP                  R4       V# )r  r  r1   -D_GLIBCXX_DEBUG=1>=18z-U_LIBCPP_HARDENING_MODEz5-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG	-fno-rtti)get_compileropt_value
isinstancer   r2   rE   rC   r   rW   rO   r'  r(  r3   r  r  r1   s   &&&    r9   get_option_compile_args(ClangCPPCompiler.get_option_compile_args  s    ))&&E--j&M''fA$%%%%"c""""(D))))B%KK,-
 t||V4467STKK$r;   c               $    V ^8  d   QhRRRRRR/# r0   r'  r,   r(  r]   r5   r4   r7   )r8   s   "r9   r:   r   !  "      + ? ^i r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d!   VP                  V P	                  V4      4       V# r   r=   r-  r.  r2   rC   r   rO   r'  r(  r3   r   s   &&&  r9   get_option_std_args$ClangCPPCompiler.get_option_std_args!  O    ((C#s####&=KK//45r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r   )  "     	 	= 	o 	al 	r;   c                	2   V P                   P                  4       '       g!   V P                   P                  4       '       dW   V P                  R W4      p\	        V\
        4      '       g   Q hVR,          pV F  p\	        V\        4      '       d   K  Q h	  V# . # r  NNNr   r!  r"  r-  r.  listr2   rO   r'  r(  retvallibsls   &&&   r9   get_option_link_args%ClangCPPCompiler.get_option_link_args)  s|    99!!TYY%8%8%:%://	6NFfd++++!9D!!S)))) K	r;   c                    V ^8  d   QhRRRR/# r0   disabler   r5   r4   r7   )r8   s   "r9   r:   r   4  s     H Ht H Hr;   c                	    V'       d   R .# R F$  pV P                   P                  V4      f   K"  . u # 	  V P                  V P                  4      R8X  d   R.# R.# )-DNDEBUGr   -D_GLIBCXX_ASSERTIONS=14-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST_GLIBCXX_ASSERTIONS_LIBCPP_HARDENING_MODE_LIBCPP_ENABLE_ASSERTIONS)r   rM   r   r   rO   rK  macros   && r9   get_assert_args ClangCPPCompiler.get_assert_args4  sb    < dE||&2	 d (()9)9:hF-..FGGr;   c               $    V ^8  d   QhRRRRRR/# r0   pch_dirr2   r   r5   r4   r7   )r8   s   "r9   r:   r   B  s!       S [ r;   c                	r   < \         SV `  W4      p\        V P                  R 4      '       d   R.V,           # V# )z>=11z-fpch-instantiate-templates)r   get_pch_use_argsr   rW   )rO   rZ  r   r3   r   s   &&& r9   r\  !ClangCPPCompiler.get_pch_use_argsB  s6    w'84<<0012T99r;   r
  NNNNr   r   r   r   ra   r   r0  r9  rG  rV  r\  r   r   r   s   @r9   r   r      s1    : <8	H r;   r   c                      ] tR tRtRtRtR# )ArmLtdClangCPPCompileriI  r   r7   Nr   r   r   r   r   r   r7   r;   r9   rc  rc  I  s    	Br;   rc  c                      ] tR tRtRtR# )AppleClangCPPCompileriN  r7   N)r   r   r   r   r   r7   r;   r9   rf  rf  N  s    r;   rf  c                  B    ] tR tRtRtRtRtRR R lltRR R	 lltR
t	R# )EmscriptenCPPCompileriR  r   z>=2.0.10z>=3.1.39Nc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# r   r7   )r8   s   "r9   r:   "EmscriptenCPPCompiler.__annotate___  sU     	] 	]{ 	][ 	]3 	]]j 	]!	]+F	]6	]  /	]r;   c	                	    VP                  V4      '       g   \        R 4      h\        VR4      '       g   \        R4      h\        P	                  WW#WEWgVR7	       R# )z;Emscripten compiler can only be used for cross compilation.z	>=1.39.19z$Meson requires Emscripten >= 1.39.19)rZ   r   r\   N)is_cross_buildr   r   r   ra   	rO   rU   rV   rW   rX   rY   rZ   r   r\   s	   &&&&&&&&&r9   ra   EmscriptenCPPCompiler.__init___  sY     !!+.. !^__w44 !GHH!!$+)/| 	" 	]r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   rj  j  r4  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d!   VP                  V P	                  V4      4       V# r6  r7  r8  s   &&&  r9   r9  )EmscriptenCPPCompiler.get_option_std_argsj  r;  r;   r7   r_  r`  )
r   r   r   r   r   _CPP23_VERSION_CPP26_VERSIONra   r9  r   r7   r;   r9   rh  rh  R  s#    	B  NN	] r;   rh  c                  b   a  ] tR tRtRtRR R lltR V 3R lltRR R lltRR	 R
 lltRt	V ;t
# )ArmclangCPPCompileris  z
Keil armclang
c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:    ArmclangCPPCompiler.__annotate__x  sA     : :{ :[ :3 :]j :!:+F:.:r;   c                	    \         P                  WW#VWVVR 7       \        P                  ! V 4       RR.pR. RVRVR.,           RVRR.,           R	R
./V n        R# r   )rG   ra   r   r
  	rO   rU   rV   rW   rX   rY   rZ   r\   r  s	   &&&&&&&& r9   ra   ArmclangCPPCompiler.__init__x  su     	T7[ l 	 	L!!$'$o6r00I;>0I|3LL&(8	:r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   rw    s      9 r;   c                	J  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      pW,          p\        V\        P                  4      '       g   Q R4       hVP                  . R	ORR7       V# )
r1   r  r  r  r   for mypyTr-   r  )c++98c++03r   r   r   )	r   r   r   r   r  r  r.  r   set_versionsrO   r   r   std_optr   s   &   r9   r   ArmclangCPPCompiler.get_options  s    w"$''-++!!#&*7	9	 ''.)'7#8#899E:E9JPTUr;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   rw    "      + ? ^i r;   c                	   . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d   VP                  RV,           4       V P                  RW4      p\        V\        4      '       g   Q h\	        WS4       V# )r   r=   r   r1   )r-  r.  r2   rC   rE   )rO   r'  r(  r3   r   r1   s   &&&   r9   r9  'ArmclangCPPCompiler.get_option_std_args  su    ((C#s####&=KK#&''fA"c""""B%r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   rw    "      = o al r;   c                	    . # r`  r7   rO   r'  r(  s   &&&r9   rG  (ArmclangCPPCompiler.get_option_link_args      	r;   r^  r   r`  )r   r   r   r   r   ra   r   r9  rG  r   r   r   s   @r9   ru  ru  s  s&    :   r;   ru  c                     a  ] tR tRtRR R lltR V 3R lltRR R lltRR R	 lltRR
 R lltR R lt	R R lt
RtV ;t# )GnuCPPCompileri  c               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# r   r7   )r8   s   "r9   r:   GnuCPPCompiler.__annotate__  sU     Z Z{ Z[ Z3 Z]j Z!Z+FZ6Z  /Zr;   c	                	,   \         P                  WW#VWVVR 7       \        P                  ! W4       RR.p	R. RV	RV	R.,           RV	RR.,           R	V	RR.,           V P                  \        4      ,           V P                  \
        4      ,           /V n        R
# )r`   r  r  r  r  r  r  r  r  r	  N)rG   ra   r   supported_warn_argsr   r   r
  r  s
   &&&&&&&&& r9   ra   GnuCPPCompiler.__init__  s     	T7[ l 	 	LT+$o6r00I;>0I|3LL&):i=V)V)-)A)ABY)Z*[)-)A)ABV)W*X	Zr;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r         $ $9 $r;   c                	<  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      p\        P                  ! V P                  V4      RR4      W&   V P                  R4      p\        P                  ! V P                  V4      RR	4      W&   V P                  P                  4       '       g!   V P                  P                  4       '       d@   VP                  R
R7      p\        P                  ! V P                  V4      R\        4      W&   \        V P                  R4      '       d@   VP                  RR7      p\        P                  ! V P                  V4      RRRR.R7      W&   V# )r1   r  r  r  r  r  Tr  r  Fcpp_winlibs)rI   r  z>=15.1cpp_importstdUse #import std.falsetruer  )r   r   r   r   r  r  r  r   r!  r"  evolver#  r   r   rW   r   s   &  r9   r   GnuCPPCompiler.get_options  sn   w"$''-++!!#&*7	9	 ''/--!!#&	
 ''
3--!!#&	
 99!!TYY%8%8%:%:**-*0C55%%c*8DI
 4<<22**/*2C//0E0Ec0J0B079@&8IKDI
 r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r    "      m  do r;   c                	   . pV P                  R W4      pV P                  RW4      pV P                  RW4      p\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q h\	        Wc4       V'       g   VP                  R4       V'       d   VP                  R4       V# )r  r  r1   r,  r*  )r-  r.  r   r2   rE   rC   r/  s   &&&    r9   r0  &GnuCPPCompiler.get_option_compile_args  s    ))&&E--j&M''fA$%%%%"c""""(D))))B%KK$ KK,-r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r    r4  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d!   VP                  V P	                  V4      4       V# r6  r7  r8  s   &&&  r9   r9  "GnuCPPCompiler.get_option_std_args  r;  r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r    r=  r;   c                	2   V P                   P                  4       '       g!   V P                   P                  4       '       dW   V P                  R W4      p\	        V\
        4      '       g   Q hVR,          pV F  p\	        V\        4      '       d   K  Q h	  V# . # r?  rA  rC  s   &&&   r9   rG  #GnuCPPCompiler.get_option_link_args  s|    99!!TYY%8%8%:%://	6NFfd++++ &q	D!!S)))) K	r;   c                    V ^8  d   QhRRRR/# rJ  r7   )r8   s   "r9   r:   r    s      t  r;   c                	    V'       d   R .# R F$  pV P                   P                  V4      f   K"  . u # 	  V P                  V P                  4      R8X  d   R.# \	        V P
                  R4      '       d   R.# . # )rM  r   rN  r+  rO  rP  )r   rM   r   r   r   rW   rT  s   && r9   rV  GnuCPPCompiler.get_assert_args  sz    < dE||&2	 d (()9)9:hF-.. t||V44NOO	r;   c               $    V ^8  d   QhRRRRRR/# rY  r7   )r8   s   "r9   r:   r    s&     J J JS J[ Jr;   c                	F    R R\         P                  P                  V4      .# )z-fpch-preprocessz-include)ospathbasename)rO   rZ  r   s   &&&r9   r\  GnuCPPCompiler.get_pch_use_args  s    "J0@0@0HIIr;   r^  r_  r`  ra  r   s   @r9   r  r    s4    Z $ $L*	.J Jr;   r  c                  &    ] tR tRtRR R lltRtR# )PGICPPCompileri   Nc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   PGICPPCompiler.__annotate__!  A     # #{ #[ #3 #]j #!#+F#.#r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   rG   ra   r    rb   s   &&&&&&&&r9   ra   PGICPPCompiler.__init__!  1     	T7[ l 	 	LT"r;   r7   r   )r   r   r   r   ra   r   r7   r;   r9   r  r     s    # #r;   r  c                  B   a  ] tR tRtRtRR R lltR V 3R lltRtV ;t# )	NvidiaHPC_CPPCompileri)  r   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   "NvidiaHPC_CPPCompiler.__annotate__-  r  r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   r  rb   s   &&&&&&&&r9   ra   NvidiaHPC_CPPCompiler.__init__-  r  r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r  4  s     	 	9 	r;   c                	   < \         SV `  4       p. ROpWP                  R4      ,          p\        V\        P
                  4      '       g   Q R4       hVP                  V4       V# )r  r   r}  )r  r  r   r   r   r   r   gnu++98gnu++03r   r   r   r   r   r   r   r.  r   r   r  )rO   r   cppstd_choicesr  r   s   &   r9   r   !NvidiaHPC_CPPCompiler.get_options4  s]    w"$
 0078'7#8#899E:E9^,r;   r7   r   	r   r   r   r   r   ra   r   r   r   r   s   @r9   r  r  )  s    	B#	 	r;   r  c                  |   a  ] tR tRtRR R lltR V 3R lltRRRR/R	 V 3R
 llltRR R lltRR R lltRt	V ;t
# )ElbrusCPPCompileri@  Nc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# r   r7   )r8   s   "r9   r:   ElbrusCPPCompiler.__annotate__A  sK     & &{ &[ &3 &]j &!&+F&6&  /&r;   c	                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   )rG   ra   r   rm  s	   &&&&&&&&&r9   ra   ElbrusCPPCompiler.__init__A  s1     	T7[ l 	 	L%r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r  I  r  r;   c                	  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      p\        P                  ! V P                  V4      RR4      W&   R.p\        V P                  R4      '       d   V. RO,          p\        V P                  R	4      '       d(   \        V P                  R
4      '       d   VRR.,          p\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VRR.,          p\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VR.,          pV P                  R4      pW,          p\        V\        P                  4      '       g   Q R4       hVP                  VRR7       V# )r1   r  r  r  r  r  Fr  z	>=1.20.00z	>=1.21.00z<1.22.00r   r   z	>=1.22.00z	>=1.23.00z	>=1.24.00r   r   z	>=1.25.00r   z	>=1.26.00r   r   r}  Tr~  r  )r  r   r   )r   r   r   r   r  r  r  r   rW   r.  r   r  )rO   r   r   cpp_stdsr  r   s   &    r9   r   ElbrusCPPCompiler.get_optionsI  s   w"$''-++!!#&*7	9	 ''
3--!!#&	
 94<<5533H4<<55/$,,Xb:c:c'**H4<<55	!H4<<55	!H4<<55'**H4<<55	!H4<<55	!H''.)'7#8#899E:E9X40r;   r   r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r0   funcnamer2   r   r   T.Optional[T.List[str]]r   r   r5   r   r7   )r8   s   "r9   r:   r  q  s9     h hS h# h!8h#ChObhr;   c               	8   < VR 8X  d   R# \         SV `  WW4R7      # )lchmodr   )FF)r   has_function)rO   r  r   r   r   r   s   &&&$$r9   r  ElbrusCPPCompiler.has_functionq  s(     xw#H#ggr;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r  y  s"      m  do r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q h\        WC4       V P                  RW4      p\        V\        4      '       g   Q hV'       d   VP	                  R4       V# )r1   r  r*  )r-  r.  r2   rE   rC   )rO   r'  r(  r3   r1   r  s   &&&   r9   r0  )ElbrusCPPCompiler.get_option_compile_argsy  sn    ''fA"c""""B%--j&M(C((((KK,-r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r    r4  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d!   VP                  V P	                  V4      4       V# r6  r7  r8  s   &&&  r9   r9  %ElbrusCPPCompiler.get_option_std_args  r;  r;   r7   r_  r`  )r   r   r   r   ra   r   r  r0  r9  r   r   r   s   @r9   r  r  @  s@    &$ $Ph;?hFJh h r;   r  c                  n   a  ] tR tRtRR R lltR V 3R lltRR R lltRR R	 lltRR
 R lltRt	V ;t
# )IntelCPPCompileri  c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   IntelCPPCompiler.__annotate__  sJ     I I{ I[ I3 I]j I!I+FI.Ir;   c                	    \         P                  WW#VWVVR 7       \        P                  ! V 4       RV n        . R
OpR. RVR.,           RVRR.,           RVRR.,           RVR.,           /V n        R	# )r`   z
c++-headerr  r  z-diag-disable:remarkr  r  r  r	  N)r  z-w3z-Wpch-messages)rG   ra   r   lang_headerr
  ry  s	   &&&&&&&& r9   ra   IntelCPPCompiler.__init__  s     	T7[ l 	 	L%%d+'>r04J3KK0I?U3VV0I?U3VV&(9YK(G	Ir;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r    s     ' '9 'r;   c                	"  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      p\        P                  ! V P                  V4      RR4      W&   V P                  R4      p\        P                  ! V P                  V4      RR	4      W&   R
R.pRR.p\        V P                  R4      '       d   VRR.,          pVR.,          p\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VR.,          p\        V P                  R4      '       d   VR.,          pVR.,          pV P                  WV,           4       V# )r1   r  r  r  r  r  Tr  r  Fr  r  r  r  z>=15.0.0r   r   r   z>=16.0.0r   z>=17.0.0r   z>=19.1.0r   r   r  )
r   r   r   r   r  r  r  r   rW   _update_language_stds)rO   r   r   c_stdsg_stdsr   s   &    r9   r   IntelCPPCompiler.get_options  su   w"$''-++!!#&*7	9	 ''/--!!#&	
 ''
3--!!#&	 7#Y'4<<44w((Fyk!F4<<44wiF4<<44yk!F4<<44wiFyk!F""4&9r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r    s"      m  do r;   c                	   . pV P                  R W4      pV P                  RW4      pV P                  RW4      p\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       g   Q hVR8X  d   VP	                  R4       V'       g   VP	                  R4       V'       d   VP	                  R4       V# )r  r  r1   r=   r>   r,  r*  r-  r.  r   r2   rC   r/  s   &&&    r9   r0  (IntelCPPCompiler.get_option_compile_args  s    ))&&E--j&M''fA$%%%%"c""""(D))))<KK)*KK$KK,-r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r    r  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d.   RRRR/pVP                  RVP	                  WD4      ,           4       V# )r   r=   r  r  r  r  r   )r-  r.  r2   rC   rM   )rO   r'  r(  r3   r   remap_cpp03s   &&&   r9   r9  $IntelCPPCompiler.get_option_std_args  se    ((C#s####&=9K KK+//#";;<r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r    r  r;   c                	    . # r`  r7   r  s   &&&r9   rG  %IntelCPPCompiler.get_option_link_args  r  r;   )r  r
  r   r`  )r   r   r   r   ra   r   r0  r9  rG  r   r   r   s   @r9   r  r    s(    I' 'R& r;   r  c                      ] tR tRtRtRtR# )IntelLLVMCPPCompileri  r   r7   Nrd  r7   r;   r9   r  r    s    	Br;   r  c                     a  ] tR tRtRtRRRRRRRRRRRRR	RR
R RR!RR"RR#/tR$R R lltR V 3R lltR$R R lltR$R R llt	R R lt
RtV ;t# )% VisualStudioLikeCPPCompilerMixini  z?Mixin for C++ specific method overrides in MSVC-like compilers.r=   vc++11vc++14vc++17vc++20
vc++latestr   r   r   r   	c++latestc               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   -VisualStudioLikeCPPCompilerMixin.__annotate__  s"     / /= /o /al /r;   c                	:   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\        P                  ! RV4      R,          # )r  r(  r4   r@  )	r   r  r   coredataget_option_for_targetoptstoreget_value_forTcast)rO   r'  r(  r   values   &&&  r9   rG  5VisualStudioLikeCPPCompilerMixin.get_option_link_args  sw    ''	299Z9P$$--CCFPE$$--66DDSIEvvmU+A..r;   c               $    V ^8  d   QhRRRRRR/# )r0   r   r   r  r4   r5   r7   )r8   s   "r9   r:   r    s#        &B  k  ^z  r;   c                	  < \         SV `  4       pV P                  R 4      p\        P                  ! V P                  V4      RR. ROR7      W&   V P                  R4      p\        P                  ! V P                  V4      RR4      W&   V P                  R4      p\        P                  ! V P                  V4      R\        4      W&   WP                  R	4      ,          p\        V\        P                  4      '       g   Q R
4       hVP                  V4       \        V P                  R4      '       d?   V P                  R4      p\        P                  ! V P                  V4      RRRR.R7      W&   V# )r1   r  r  r  r  r  Tr  r  r   r}  z>=19.44.35219	importstdr  r  r  r  )r   r   r   r   r  r  r  r#  r	   r.  r   r  r   rW   )rO   r   r  r   r  r   s   &&&  r9   _get_options_impl2VisualStudioLikeCPPCompilerMixin._get_options_impl  sP   w"$''-++!!#&*7	9	 ''/--!!#&	
 ''	211!!#&4	
 0078'7#8#899E:E9X&4<<99++K8C//0E0Ec0J0B079@&8IKDI r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r  -  r  r;   c                	x   . pV P                  R W4      pV P                  RW4      p\        V\        4      '       g   Q h\        V\        4      '       g   Q hVR8X  d   VP	                  R4       M1VR8X  d   VP	                  R4       MVP	                  RV,           4       V'       g   VP	                  R4       V# )r1   r  r  z/EHscr=   z/EHs-c-z/EHz/GR-r  )rO   r'  r(  r3   r1   r  s   &&&   r9   r0  8VisualStudioLikeCPPCompilerMixin.get_option_compile_args-  s    ''fA))&&E$%%%%"c""""?KK 6\KK	"KK
#KKr;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r  B  s"     
 
+ 
? 
^i 
r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hV P                  V,          w  rVVe   VP	                  RV 24       V'       g   VP	                  R4       V# )r   z/std:c++/permissive-)r-  r.  r2   VC_VERSION_MAPrC   )rO   r'  r(  r3   r   
permissivevers   &&&    r9   r9  4VisualStudioLikeCPPCompilerMixin.get_option_std_argsB  sj    ((C#s####--c2
?KK(3%()KK'r;   c                    V ^8  d   QhRRRR/# r|   r7   )r8   s   "r9   r:   r  N  s     < <,< < <r;   c                	.    \         P                  ! W4      # r`  )r
   r   rO   r}   s   &&r9   r   8VisualStudioLikeCPPCompilerMixin.get_compiler_check_argsN  s    //;;r;   r7   )TN)T   )T   )T   )T   )Tlatest)Fr"  )Fr#  )Fr$  )Fr%  )Fr&  r`  )r   r   r   r   r   r  rG  r  r0  r9  r   r   r   r   s   @r9   r  r    sl    I 	****&&N/   D*
< <r;   r  c                  6   a  ] tR tRtRtRR V 3R llltRtV ;t# )CPP11AsCPP14MixiniR  zMixin class for VisualStudio and ClangCl to replace C++11 std with C++14.

This is a limitation of Clang and MSVC that ICL doesn't share.
c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   CPP11AsCPP14Mixin.__annotate__Y  s"      + ? ^i r;   c                	  < V P                  R 4      P                  VR7      pVe'   V P                  P                  P	                  W4      pM/V P                  P                  P
                  P                  V4      pVR	9   d&   \        P                  ! V P                  RRRRR7       \        S	V `-  W4      pRR/pV Uu. uF  qvP                  Ww4      NK  	  ppV# u upi )
r   r  zdoes not support C++11;z5attempting best effort; setting the standard to C++14TF)oncer@   z
/std:c++11z
/std:c++14>   r   r  )r   r  r   r  r  r	  r
  r   rD   r   r   r9  rM   )
rO   r'  r(  stdkeyr   original_argsstd_mappingxprocessed_argsr   s
   &&&      r9   r9  %CPP11AsCPP14Mixin.get_option_std_argsY  s    
 **5188J8O""++AA&QC""++44BB6JC%%LL";P"%1 3FG#\29FGA//!/G Hs   ?Cr7   r`  )r   r   r   r   r   r9  r   r   r   s   @r9   r(  r(  R  s    
  r;   r(  c                  X   a  ] tR tRtRtR
R R lltR V 3R lltRR V 3R llltR	tV ;t	# )VisualStudioCPPCompilerim  msvcc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r0   rU   r4   rV   rW   r2   rX   r+   rY   r)   r'  rZ   r[   r\   r]   r7   )r8   s   "r9   r:   $VisualStudioCPPCompiler.__annotate__q  sU     F F{ F[ F3 F]j F!F+.F4F  /Fr;   c	                	    \         P                  WW#VWWVR 7       \        P                  ! W4       \        V P                  R4      '       d   V P
                  R.,           V n        R# R# )r`   z>= 19.14.26428z/Zc:__cplusplusN)rG   ra   r   r   rW   always_args)	rO   rU   rV   rW   rX   rY   r'  rZ   r\   s	   &&&&&&&&&r9   ra    VisualStudioCPPCompiler.__init__q  sa     	T7[ l 	 	Ld+
 4<<)9::#//3D2EED ;r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r7    s     
G 
G9 
Gr;   c                	b  < . ROp\        V P                  R4      '       d   VP                  . RO4       \        V P                  R4      '       d   VP                  . RO4       \        V P                  R4      '       d   VP                  RR.4       V P                  \        SV `  4       V4      # )	r=   z>=19z>=19.11z>=19.29r   r   )r=   r   r  )r   r  r  )r  r   r  )r   rW   extendr  r   r   rO   r  r   s   & r9   r   #VisualStudioCPPCompiler.get_options  s    .4<<00OO@A4<<33OO9:4<<33OOWh/0%%eg&9&;XFFr;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r7    s"      + ? ^i r;   c                	F  < V P                  R W4      pVR8w  d5   \        V P                  R4      '       d   \        P                  ! RRR7       \
        SV `  W4      p\        V P                  R4      '       d    VP                  R4      pYE V#   \         d    Tu # i ; i)r   r=   z<19.00.24210z7This version of MSVC does not support cpp_std argumentsFr?   z<19.11r  )	r-  r   rW   r   rD   r   r9  index
ValueError)rO   r'  r(  r   r3   r   r   s   &&&   r9   r9  +VisualStudioCPPCompiler.get_option_std_args  s    ((C&=_T\\>JJLLRZ_`w*6>4<<22JJ~.   s   ;B B B )r9  r   r`  )
r   r   r   r   r   ra   r   r9  r   r   r   s   @r9   r4  r4  m  s)    	BF
G 
G  r;   r4  c                  B   a  ] tR tRtRtRR R lltR V 3R lltRtV ;t# )	ClangClCPPCompileri  zclang-clc               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# r0   rV   r4   rW   r2   rX   r+   rY   r)   r'  rZ   r[   r\   r]   r7   )r8   s   "r9   r:   ClangClCPPCompiler.__annotate__  sC     / / /c / /!/+./4/  //r;   c                	h    \         P                  V . WVWFVR 7       \        P                  ! W4       R# r_   )rG   ra   r   rO   rV   rW   rX   rY   r'  rZ   r\   s   &&&&&&&&r9   ra   ClangClCPPCompiler.__init__  s3     	T2w l 	 	L  .r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   rI    s     G G9 Gr;   c                	H   < . ROpV P                  \        SV `	  4       V4      # )r=   )
r=   r   r  r   r  r   r  r   r   r  )r  r   r   r>  s   & r9   r   ClangClCPPCompiler.get_options  s#    t%%eg&9&;XFFr;   r7   r   r  r   s   @r9   rF  rF    s    	B/G Gr;   rF  c                  J   a  ] tR tRtR	R R lltR V 3R lltR R ltRtV ;t# )
IntelClCPPCompileri  c               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# rH  r7   )r8   s   "r9   r:   IntelClCPPCompiler.__annotate__  sC     = = =c = =!=+.=4=  /=r;   c                	h    \         P                  V . WVWFVR 7       \        P                  ! W4       R# r_   )rG   ra   r   rK  s   &&&&&&&&r9   ra   IntelClCPPCompiler.__init__  s3     	T2w l 	 	L%..t<r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   rS    s     G G9 Gr;   c                	   < \        V P                  R 4      '       d   . ROpM. ROp\        V P                  R4      '       d   VR.,          pV P                  \        SV `  4       V4      # )z	<2021.1.0z
>=2024.1.0r   )r=   r   r  r   r  r   r  r  )r=   r   r   r  )r   rW   r  r   r   r>  s   & r9   r   IntelClCPPCompiler.get_options  sV    4<<55eH>H4<<66	!H%%eg&9&;XFFr;   c                    V ^8  d   QhRRRR/# r|   r7   )r8   s   "r9   r:   rS    s     Q Q,< Q Qr;   c                	.    \         P                  ! W4      # r`  )r   r   r   s   &&r9   r   *IntelClCPPCompiler.get_compiler_check_args  s    ,DDTPPr;   r7   r   )	r   r   r   r   ra   r   r   r   r   r   s   @r9   rQ  rQ    s     =G GQ Qr;   rQ  c                      ] tR tRtRtRtR# )IntelLLVMClCPPCompileri  zintel-llvm-clr7   Nrd  r7   r;   r9   r]  r]    s    	Br;   r]  c                  j   a  ] tR tRtRR R lltR V 3R lltRR R lltRR R	 lltR
 R ltRt	V ;t
# )ArmCPPCompileri  c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   ArmCPPCompiler.__annotate__  r  r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   )rG   ra   r   rb   s   &&&&&&&&r9   ra   ArmCPPCompiler.__init__  r  r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   ra    s      9 r;   c                	   < \         SV `  4       pV P                  R 4      p\        V\        P
                  4      '       g   Q R4       hVP                  RR.4       V# )r   r}  r  r   r  )rO   r   r  r   s   &  r9   r   ArmCPPCompiler.get_options  sV    w"$++E2'7#8#899E:E9gw/0r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   ra    s"      + ? ^i r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8X  d   VP                  R4       V# VR8X  d   VP                  R4       V# )r   r   z--cpp11r  z--cppr-  r.  r2   rC   r8  s   &&&  r9   r9  "ArmCPPCompiler.get_option_std_args  s`    ((C#s####'>KK	"  G^KK r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   ra    r  r;   c                	    . # r`  r7   r  s   &&&r9   rG  #ArmCPPCompiler.get_option_link_args  r  r;   c                    V ^8  d   QhRRRR/# r|   r7   )r8   s   "r9   r:   ra          ,<  r;   c                	    . # r`  r7   r   s   &&r9   r   &ArmCPPCompiler.get_compiler_check_args  r  r;   r7   r   r`  )r   r   r   r   ra   r   r9  rG  r   r   r   r   s   @r9   r_  r_    s&    #  r;   r_  c                  f    ] 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 R lltR R lt	Rt
R# )CcrxCPPCompileri  Nc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   CcrxCPPCompiler.__annotate__  sA     $ ${ $[ $3 $]j $!$+F$.$r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   )rG   ra   r   rb   s   &&&&&&&&r9   ra   CcrxCPPCompiler.__init__  s1     	T7[ l 	 	Ld#r;   c                   V ^8  d   QhRR/# rj   r7   )r8   s   "r9   r:   ru    s     ( ( (r;   c                	
    R R.# )z-nologoz	-lang=cppr7   rl   s   &r9   get_always_argsCcrxCPPCompiler.get_always_args  s    ;''r;   c                   V ^8  d   QhRR/# rj   r7   )r8   s   "r9   r:   ru    s      { r;   c                	    . # r`  r7   rl   s   &r9   get_compile_only_args%CcrxCPPCompiler.get_compile_only_args  r  r;   c                    V ^8  d   QhRRRR/# )r0   
outputnamer2   r5   r4   r7   )r8   s   "r9   r:   ru    s     - -# -+ -r;   c                	    R V 2.# )z-output=obj=r7   )rO   r  s   &&r9   get_output_argsCcrxCPPCompiler.get_output_args  s    zl+,,r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   ru    r  r;   c                	    . # r`  r7   r  s   &&&r9   rG  $CcrxCPPCompiler.get_option_link_args  r  r;   c                    V ^8  d   QhRRRR/# r|   r7   )r8   s   "r9   r:   ru    ro  r;   c                	    . # r`  r7   r   s   &&r9   r   'CcrxCPPCompiler.get_compiler_check_args  r  r;   r7   r   r`  )r   r   r   r   ra   rz  r~  r  rG  r   r   r7   r;   r9   rs  rs    s%    $(- r;   rs  c                  j   a  ] tR tRtRR R lltR V 3R lltRR R lltR R	 ltRR
 R lltRt	V ;t
# )TICPPCompileri  c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   TICPPCompiler.__annotate__  sA     " "{ "[ "3 "]j "!"+F"."r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   )rG   ra   r   rb   s   &&&&&&&&r9   ra   TICPPCompiler.__init__  s1     	T7[ l 	 	LD!r;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r  	  r   r;   c                	   < \         SV `  4       pV P                  R 4      pW,          p\        V\        P
                  4      '       g   Q R4       hVP                  R.4       V# )r   r}  r  r  r  s   &   r9   r   TICPPCompiler.get_options	  sZ    w"$''.)'7#8#899E:E9gY'r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r    r4  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d   VP                  RV,           4       V# )r   r=   z--ri  r8  s   &&&  r9   r9  !TICPPCompiler.get_option_std_args  sH    ((C#s####&=KKs
#r;   c                   V ^8  d   QhRR/# rj   r7   )r8   s   "r9   r:   r    s       r;   c                	    . # r`  r7   rl   s   &r9   rz  TICPPCompiler.get_always_args  r  r;   c               $    V ^8  d   QhRRRRRR/# r&  r7   )r8   s   "r9   r:   r    r  r;   c                	    . # r`  r7   r  s   &&&r9   rG  "TICPPCompiler.get_option_link_args  r  r;   r7   r   r`  )r   r   r   r   ra   r   r9  rz  rG  r   r   r   s   @r9   r  r    s&    "  r;   r  c                      ] tR tRtRtRtR# )C2000CPPCompileri  c2000r7   Nrd  r7   r;   r9   r  r    s    	Br;   r  c                      ] tR tRtRtRtR# )C6000CPPCompileri#  c6000r7   Nrd  r7   r;   r9   r  r  #  s    	Br;   r  c                  ^   a  ] tR tRtRtRR R lltR R ltR V 3R lltRR	 R
 lltRt	V ;t
# )MetrowerksCPPCompilerARMi&  mwccarmc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   %MetrowerksCPPCompilerARM.__annotate__)  A     * *{ *[ *3 *]j *!*+F*.*r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   rG   ra   r"   rb   s   &&&&&&&&r9   ra   !MetrowerksCPPCompilerARM.__init__)  1     	T7[ l 	 	L##D)r;   c                    V ^8  d   QhRRRR/# r0   instruction_setr2   r5   r  r7   )r8   s   "r9   r:   r  0  s     G G G@W Gr;   c                	0    \         P                  ! VR 4      # r`  )r#   rM   rO   r  s   &&r9   get_instruction_set_args1MetrowerksCPPCompilerARM.get_instruction_set_args0  s    +//FFr;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r  3        9 r;   c                	H   < \         SV `  4       pV P                  V. 4       V# r`  r   r   r  rO   r   r   s   & r9   r   $MetrowerksCPPCompilerARM.get_options3  %    w"$""4,r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r  8  s"      + ? ^i r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d#   VP                  R4       VP                  V4       V# )r   r=   z-langri  r8  s   &&&  r9   r9  ,MetrowerksCPPCompilerARM.get_option_std_args8  sP    ((C#s####&=KK KKr;   r7   r   r`  r   r   r   r   r   ra   r  r   r9  r   r   r   s   @r9   r  r  &  s'    	B*G 
 r;   r  c                  ^   a  ] tR tRtRtRR R lltR R ltR V 3R lltRR	 R
 lltRt	V ;t
# )$MetrowerksCPPCompilerEmbeddedPowerPCiA  mwcceppcc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# rT   r7   )r8   s   "r9   r:   1MetrowerksCPPCompilerEmbeddedPowerPC.__annotate__D  r  r;   c                	f    \         P                  WW#VWVVR 7       \        P                  ! V 4       R# r_   r  rb   s   &&&&&&&&r9   ra   -MetrowerksCPPCompilerEmbeddedPowerPC.__init__D  r  r;   c                    V ^8  d   QhRRRR/# r  r7   )r8   s   "r9   r:   r  K  s     H H H@W Hr;   c                	0    \         P                  ! VR 4      # r`  )r$   rM   r  s   &&r9   r  =MetrowerksCPPCompilerEmbeddedPowerPC.get_instruction_set_argsK  s    ,00$GGr;   c                   V ^8  d   QhRR/# r   r7   )r8   s   "r9   r:   r  N  r  r;   c                	H   < \         SV `  4       pV P                  V. 4       V# r`  r  r  s   & r9   r   0MetrowerksCPPCompilerEmbeddedPowerPC.get_optionsN  r  r;   c               $    V ^8  d   QhRRRRRR/# r3  r7   )r8   s   "r9   r:   r  S  r4  r;   c                	    . pV P                  R W4      p\        V\        4      '       g   Q hVR8w  d   VP                  RV,           4       V# )r   r=   z-lang ri  r8  s   &&&  r9   r9  8MetrowerksCPPCompilerEmbeddedPowerPC.get_option_std_argsS  sH    ((C#s####&=KK3'r;   r7   r   r`  r  r   s   @r9   r  r  A  s'    	B*H 
 r;   r  c                  *    ] tR tRtRtRR R lltRtR# )Xc32CPPCompileri\  zMicrochip XC32 C++ compiler.Nc               8    V ^8  d   QhRRRRRRRRRR	R
RRRRR/# )r0   rU   r4   rV   rW   r2   rX   r+   rY   r)   rZ   zT.Optional[DynamicLinker]r   r   r\   r]   r7   )r8   s   "r9   r:   Xc32CPPCompiler.__annotate__`  sK     $ ${ $[ $3 $]j $!$+D$6$  /$r;   c	                	f    \         P                  WW#WEWhVR 7	       \        P                  ! V 4       R# ))rZ   r\   r   N)r  ra   r%   rm  s	   &&&&&&&&&r9   ra   Xc32CPPCompiler.__init__`  s2     	g'-RY 	  	[d#r;   r7   r_  )r   r   r   r   r   ra   r   r7   r;   r9   r  r  \  s    &$ $r;   r  )r  r   r  r   r   r   r   r   r   r   r   r   )r  r  r  r   r  r  )f
__future__r   r   os.pathr  typingr  r   r   r   mesonlibr   r   	compilersr   r	   r
   r   c_function_attributesr   r   mixins.appler   r   mixins.cliker   mixins.ccrxr   	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.microchipr%   r&   TYPE_CHECKINGr'   r   r(   r   r)   linkers.linkersr*   r+   buildr,   CompilerMixinBaseobjectr   rE   rG   r   r   rc  rf  rh  ru  r  r  r  r  r  r  r  r(  r4  rF  rQ  r]  r_  rs  r  r  r  r  r  r  )r   s   0r9   <module>r     sy   #      6  J ? ' % ! 5 > ^ ^ M 5 ) # . 1 Z 7???4))/(#%w 1s3r7)_1 1 O OLu- up o'  oFom[ od- 
	.0ACS 	O-= B0*K 0fwJ_j+{ wJt#[+ #K .L L^Y+[ Yx+ 
`<'8 `<D) 6+/1QS_al +ZG*,Lo_j G"Q9;XZe Q2/ 
[+ @lK 0J <} } 1; 6+={ 6
$k< 
$W! 2s   -I%