+
    UBi^                      a  0 t $ ^ RIHt  ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^RIHt ^RIHt ^RIHtHt ^ RIHt ]
P&                  '       d   ^RIHt ^RIHt ^R	IHt ^R
IHt M]tR. RR./tR]R&   R. RR.RR.RR.RR.RR.RR./tR]R&   RR .R!R".R#R$.R%R&.R'R(.R)R*.R+R,.R-R..R/R0.R1R2./
tR]R3&   R4. R5R6.R7R8.R9R:.R;R<.R=R:R>./t R]R?&   R@RA.RBRC.RDRE./t!R]RF&   / RG. RObRH. RObRI. RObRJRK.bRLRMRN.bRORP.bRQ. RObRR. RObRSRT.bRURV.bRWRX.bRYRZR[.bR\. RObR]. RObR^R_.bR`. RObRaRb.bRcRdRe.Rf. RO/Ct"R]Rg&   RG. RORhRiRj.RLRk./t#R]Rl&   RG. RORmRn.RRRo.RSRp.RURqRr.RWRs.RY. ROR\. ROR]. ROR`RtRu.RaRvRw.Rc. RORx. RO/t$R]Ry&   RGRz.R{R|.RLR}R~./t%R]R&   RRRRRRRR/t&]PN                  ! RR7      R R l4       t( ! R R]]PR                  R7      t* ! R R]*4      t+ ! R R]4      t, ! R R]4      t-R# )    )annotationsN)mesonlib)mlog)	OptionKeyUserStdOption)CompileCheckMode)ImmutableListProtocol)BuildTarget)MutableKeyedOptionDictType)CompilerFTz-gzT.Dict[bool, T.List[str]]clike_debug_argsplain0z-O0gz-Og1z-O12z-O23z-O3sz-OsT.Dict[str, T.List[str]]gnu_optimization_argsmmxz-mmmxssez-mssesse2z-msse2sse3z-msse3ssse3z-mssse3sse41z-msse4.1sse42z-msse4.2avxz-mavxavx2z-mavx2neonz
-mfpu=neongnulike_instruction_set_args defaultz-fvisibility=defaultinternalz-fvisibility=internalhiddenz-fvisibility=hidden	protectedz-fvisibility=protectedinlineshiddenz-fvisibility-inlines-hiddengnu_symbol_visibility_argsautoz-fdiagnostics-color=autoalwaysz-fdiagnostics-color=alwaysneverz-fdiagnostics-color=nevergnu_color_argsz0.0.0z3.0.0z3.3.0z4.0.0z-Wmissing-include-dirsz4.1.0z-Wunsafe-loop-optimizationsz-Wstack-protectorz4.2.0z-Wstrict-overflow=5z4.3.0z4.6.0z4.7.0z-Wvector-operation-performancez4.8.0z-Wsuggest-attribute=formatz4.9.0z-Wdate-timez5.1.0z-Wformat-signednessz-Wnormalized=nfcz6.1.0z7.1.0z7.2.0z-Wduplicated-branchesz8.1.0z9.1.0z-Wattribute-alias=2z10.1.0z-Wanalyzer-too-complexz-Warith-conversionz12.1.0gnu_common_warning_argsz3.4.0z-Wold-style-definitionz-Winit-selfz-Wc++-compatgnu_c_warning_argsz4.0.1z-Wstrict-null-sentinelz
-Wnoexceptz-Wzero-as-null-pointer-constantz	-Wabi-tagz-Wuseless-castz-Wconditionally-supportedz-Wcatch-value=3z-Wextra-semiz-Wdeprecated-copy-dtorz-Wredundant-movez11.1.0gnu_cpp_warning_argsz
-Wselectorz3.3z-Wundeclared-selectorz-Wassign-interceptz-Wstrict-selector-matchgnu_objc_warning_argsccppzc++objczobjective-cobjcppzobjective-c++)maxsizec               $    V ^8  d   QhRRRRRR/# )   compilerzT.Tuple[str, ...]langstrreturnz'ImmutableListProtocol[str]' )formats   "D/usr/lib/python3.14/site-packages/mesonbuild/compilers/mixins/gnu.py__annotate__r?   ?  s#      +< C Lh     c                   V\         9  d   . # \         V,          p\        P                  P                  4       pR VR&   \	        V 4      RV 2RRR.,           p\
        P                  ! V\        P                  VR7      w  rEp^ p. pVP                  R4       Fp  pVP                  R4      pV^ 8X  d   VR	8X  d   ^pK&  K(  V^8X  d   VR
8X  d   ^pK:  VP                  V4       KM  V^8X  g   KV  VR8X  d    MVP                  V4       Kr  	  V'       g6   \        P                  ! RP                  RP                  V4      R7      4       Yw U	u. uF"  p	\        P                   P#                  V	4      NK$  	  up	,          pV# u up	i )CLC_ALL-xz-Ez-v-)stderrenv
z 
	z"#include "..." search starts here:z"#include <...> search starts here:zEnd of search list.z1No include directory found parsing "{cmd}" output )cmd)gnu_lang_maposenvironcopylistr   
Popen_safe
subprocessSTDOUTsplitstripappendr   warningr=   joinpathnormpath)
r8   r9   rG   rJ   _stdoutparse_statepathslinexs
   &&        r>   gnulike_default_include_dirsr`   >  sT   <	D
**//
CCM
x.bKtS9
9C&&s:3D3D#NLAqKET"zz)$!;; <A;;T"A,,T" # HOOTWT\T\]`TaObc	515abggq!511EL 2s   (E>c                     ] tR tRtRtRtR R ltR R ltR R	 lt]	P                  R
 R l4       tR R lt]	P                  R R l4       tR R ltR R ltR R lt]	P                  R R l4       tR R lt]R R l4       tR R ltR R ltR  R! lt]P2                  ! 4       R" R# l4       tR$ R% ltR& R' ltR(R)R*^ R+R,/R- R. lltR/ R0 ltR1 R2 ltR3 R4 lt R5 R6 lt!R7 R8 lt"]#R9 R: l4       t$R; R< lt%R= R> lt&R?t'R)# )@GnuLikeCompileri_  a  
GnuLikeCompiler is a common interface to all compilers implementing
the GNU-style commandline interface. This includes GCC, Clang
and ICC. Certain functionality between them is different and requires
that the actual concrete subclass define their own implementation.
z-Wl,c                   V ^8  d   QhRR/# )r7   r;   Noner<   )r=   s   "r>   r?   GnuLikeCompiler.__annotate__i  s     , ,$ ,r@   c                	   R Uu0 uF  p\        V4      kK  	  upV n        V P                  P                  4       '       ge   V P                  P	                  4       '       gE   V P                  P                  4       '       g%   V P                  P                  \        R4      4       V P                  P                  4       '       d!   V P                  P	                  4       '       d%   V P                  P                  \        R4      4       V P                  P                  4       '       g%   V P                  P                  \        R4      4       V P                  P                  R4       V P                  P                  R4       R# u upi )b_pchb_lundef
b_asneeded
b_sanitizer   sxN)rg   b_ltob_pgo
b_coverageb_ndebugb_staticpicb_pie)	r   base_optionsinfo
is_windows	is_cygwin
is_openbsdaddis_hurdcan_compile_suffixes)selfos   & r>   __init__GnuLikeCompiler.__init__i  s   #GH#GQIaL #GH 		$$&&$))*=*=*?*?499CWCWCYCY!!)J"78yy##%%)<)<)>)>!!)L"9:yy  ""!!)L"9:!!%%c*!!%%d+Hs   Fc                   V ^8  d   QhRR/# r7   r;   T.List[str]r<   )r=   s   "r>   r?   re   w  s      k r@   c                	   V P                   P                  4       '       ga   V P                   P                  4       '       gA   V P                   P                  4       '       g!   V P                   P	                  4       '       d   . # R .# )z-fPIC)rs   rt   ru   	is_darwinis_os2rz   s   &r>   get_pic_argsGnuLikeCompiler.get_pic_argsw  s[    99!!TYY%8%8%:%:dii>Q>Q>S>SW[W`W`WgWgWiWiIyr@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re   |  s      k r@   c                	    R .# )z-fPIEr<   r   s   &r>   get_pie_argsGnuLikeCompiler.get_pie_args|  s
    yr@   c                    V ^8  d   QhRRRR/# r7   optimization_levelr:   r;   r   r<   )r=   s   "r>   r?   re     s        r@   c                	    R # Nr<   rz   r   s   &&r>   get_optimization_args%GnuLikeCompiler.get_optimization_args      r@   c                    V ^8  d   QhRRRR/# )r7   is_debugboolr;   r   r<   )r=   s   "r>   r?   re     s     * *t * *r@   c                	    \         V,          # r   )r   )rz   r   s   &&r>   get_debug_argsGnuLikeCompiler.get_debug_args  s    ))r@   c                   V ^8  d   QhRR/# r7   r;   r:   r<   )r=   s   "r>   r?   re     s       r@   c                	    R # r   r<   r   s   &r>   get_pch_suffixGnuLikeCompiler.get_pch_suffix  r   r@   c                    V ^8  d   QhRRRR/# )r7   fnamer:   r;   zT.Tuple[str, str]r<   )r=   s   "r>   r?   re     s     - -# -2C -r@   c                	D    \         P                  P                  V4      V3# r   )rL   rX   dirname)rz   r   s   &&r>   split_shlib_to_parts$GnuLikeCompiler.split_shlib_to_parts  s    wwu%u,,r@   c                    V ^8  d   QhRRRR/# )r7   instruction_setr:   r;   zT.Optional[T.List[str]]r<   )r=   s   "r>   r?   re     s     G G G@W Gr@   c                	.    \         P                  VR 4      # r   )r!   get)rz   r   s   &&r>   get_instruction_set_args(GnuLikeCompiler.get_instruction_set_args  s    +//FFr@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s     i i+ ir@   c                	|    \        \        V P                  R R7      4      V P                  4      P	                  4       # )F)ccache)r`   tupleget_exelistlanguagerN   r   s   &r>   get_default_include_dirs(GnuLikeCompiler.get_default_include_dirs  s2    +E$2B2B%2B2P,QSWS`S`affhhr@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s      k r@   c                	    R # r   r<   r   s   &r>   openmp_flagsGnuLikeCompiler.openmp_flags  r   r@   c                    V ^8  d   QhRRRR/# )r7   vistyper:   r;   r   r<   )r=   s   "r>   r?   re     s     3 3# 3+ 3r@   c                	P    VR 8X  d   V P                   R9  d   Rp\        V,          # )r'   r%   >   r2   r4   )r   r(   )rz   r   s   &&r>   r(   *GnuLikeCompiler.gnu_symbol_visibility_args  s&    o%$--?P*PG)'22r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s       r@   c                 	    R # )gccr<   r<   r@   r>   get_argument_syntax#GnuLikeCompiler.get_argument_syntax  s    r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s     & &; &r@   c                	    R .# )z-fprofile-generater<   r   s   &r>   get_profile_generate_args)GnuLikeCompiler.get_profile_generate_args  s    $%%r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s     ! !k !r@   c                	    R .# )z-fprofile-user<   r   s   &r>   get_profile_use_args$GnuLikeCompiler.get_profile_use_args  s      r@   c               $    V ^8  d   QhRRRRRR/# )r7   parameter_listr   	build_dirr:   r;   r<   )r=   s   "r>   r?   re     s#      [ ]` ep r@   c           	     	   \        V4       Fv  w  r4VR ,          R8X  g   VR ,          R8X  g   K#  VR ,          \        P                  P                  \        P                  P	                  W$R,          4      4      ,           W&   Kx  	  V# ):Nr7   N-Iz-L:r7   NN)	enumeraterL   rX   rY   rW   )rz   r   r   idxis   &&&  r>   &compute_parameters_with_absolute_paths6GnuLikeCompiler.compute_parameters_with_absolute_paths  sc    /FCu}"&'ebgg.>.>rww||IY[W\?].^&^# 0 r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s      # r@   c                	    R .pV P                  RVR\        P                  RR7      ;_uu_ 4       pVP                  uuRRR4       #   + '       g   i     R# ; i)z--print-search-dirsr"   NT)
extra_argsdependenciesmodewant_output)_build_wrapperr   COMPILEr[   )rz   r   ps   &  r>   _get_search_dirs GnuLikeCompiler._get_search_dirs  sT    +,
  
.29I9Q9Q-1 ! 3 367883 3 3 3s   AA	c                    V ^8  d   QhRRRR/# )r7   pathstrr:   r;   r   r<   )r=   s   "r>   r?   re     s     # #c #k #r@   c                	   \         P                  pVR 8X  d   \        P                  ! RRV4      pVP	                  V4       Uu. uF  q3'       g   K  VNK  	  pp. pV F  p\
        P                  ! V4      pVP                  4       '       g   K1   VP                  R4      P                  4       pWu9  d   VP                  V4       TP                  4       pY9  g   K  TP                  T4       K  	  V# u upi   \         d     LAi ; i);z	:([^/\\])z;\1T)rL   pathsepresubrS   pathlibPathexistsresolveas_posixrU   FileNotFoundError)	rz   r   r   r   r]   resultpobjresolved
unresolveds	   &&       r>   _split_fetch_real_dirs&GnuLikeCompiler._split_fetch_real_dirs  s     ** c>ff\67;G $MM'282qa28 A <<?D{{}}#||D1::<H-h/ "]]_
+MM*-' ( / 9$ ) s   	C4C46C99DDc                    V ^8  d   QhRRRR/# r7   namer:   r;   r   r<   )r=   s   "r>   r?   re     s      c k r@   c                    V P                  4       pVP                  R4       FK  pVP                  VR,           4      '       g   K#  V P                  VP                  R^4      ^,          4      u # 	  . # )z@
Get dirs from the compiler, either `libraries:` or `programs:`
rH   :=)r   rS   
startswithr   )rz   r   stdor^   s   &&  r>   get_compiler_dirs!GnuLikeCompiler.get_compiler_dirs  s`     $$&JJt$Dtcz**224::c13Ea3HII % 	r@   targetNthreadsr   r#   c               (    V ^8  d   QhRRRRRRRR/# )	r7   r   T.Optional[BuildTarget]r   intr   r:   r;   r   r<   )r=   s   "r>   r?   re     s,      .E WZ #&7Br@   c               	    R .# )z-fltor<   )rz   r   r   r   s   &$$$r>   get_lto_compile_args$GnuLikeCompiler.get_lto_compile_args  s     yr@   c               $    V ^8  d   QhRRRRRR/# )r7   r   r   valuer   r;   r<   )r=   s   "r>   r?   re     s#      -D [ ]h r@   c                	|    V'       g   V# R RP                  V4      ,           .pRV9   d   VP                  R4       V# )z-fsanitize=,addressz-fno-omit-frame-pointer)rW   rU   )rz   r   r  argss   &&& r>   sanitizer_compile_args&GnuLikeCompiler.sanitizer_compile_args  s9    L/0KK12r@   c                    V ^8  d   QhRRRR/# )r7   
outputnamer:   r;   r   r<   )r=   s   "r>   r?   re     s     " "# "+ "r@   c                	
    R V.# )-or<   )rz   r  s   &&r>   get_output_argsGnuLikeCompiler.get_output_args  s    j!!r@   c               $    V ^8  d   QhRRRRRR/# )r7   	outtargetr:   outfiler;   r   r<   )r=   s   "r>   r?   re     s!     9 9 9s 9{ 9r@   c                	    R RVRV.# )z-MDz-MQz-MFr<   )rz   r  r  s   &&&r>   get_dependency_gen_args'GnuLikeCompiler.get_dependency_gen_args  s    ui88r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s      { r@   c                	    R .# )z-cr<   r   s   &r>   get_compile_only_args%GnuLikeCompiler.get_compile_only_args  s	    vr@   c               $    V ^8  d   QhRRRRRR/# )r7   rX   r:   	is_systemr   r;   r   r<   )r=   s   "r>   r?   re     s!      S T k r@   c                	N    V'       g   R pV'       d   RV,           .# RV,           .# ).z-isystemr   r<   )rz   rX   r  s   &&&r>   get_include_args GnuLikeCompiler.get_include_args  s'    D%&&t}r@   c               $    V ^8  d   QhRRRRRR/# r7   linkerr:   versionr;   r   r<   )r=   s   "r>   r?   re     s!     & &S &3 &; &r@   c                	P    VR9  d   \         P                  ! RV R24      hRV 2.# )bfdzDUnsupported linker, only bfd, eld, gold, and lld are supported, not r  z	-fuse-ld=>   r%  eldlldgold)r   MesonException)clsr"  r#  s   &&&r>   use_linker_argsGnuLikeCompiler.use_linker_args  s?    66))VW]V^^_`b bF8$%%r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re   	  s      ; r@   c                	    R .# )z
--coverager<   r   s   &r>   get_coverage_args!GnuLikeCompiler.get_coverage_args	  s
    ~r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   re     s     ? ?[ ?r@   c                	    V P                   R 8X  d   V P                  4       # \        P                  V P                   R4      pV P                  4       RV 2.,           # )fortranzassembler-with-cpprD   )r   get_preprocess_only_argsrK   r   )rz   r9   s   & r>   get_preprocess_to_file_args+GnuLikeCompiler.get_preprocess_to_file_args  sR     ==I%0022/CD,,.Btf+>>r@   )rr   )(__name__
__module____qualname____firstlineno____doc__LINKER_PREFIXr|   r   r   abcabstractmethodr   r   r   r   r   r   r   r(   staticmethodr   r   r   r   	functools	lru_cacher   r   r   r   r  r  r  r  r  classmethodr+  r/  r5  __static_attributes__r<   r@   r>   rb   rb   _  s)    M,
 	 * 	 -Gi 	 3
  &!  #J ]^ )2"9 & &? ?r@   rb   )	metaclassc                  f  a  ] tR tRtRtRtRtRtRtRt	Rt
R	 V 3R
 lltR R ltR V 3R lltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR!R"R#^ R$R%R&R"/R' V 3R( llltR) R* lt]R+ V 3R, ll4       tR!R"R#^ R$R%R&R"/R- R. lltR/ V 3R0 lltR1 V 3R2 lltR3tV ;t# )4GnuCompileri  z
GnuCompiler represents an actual GCC in its many incarnations.
Compilers imitating GCC (Clang/Intel) should use the GnuLikeCompiler ABC.
r   z>=4.9.0z>=4.8.0z>=10.0z>=15.1z>=12.0.1c                   V ^8  d   QhRR/# )r7   defineszT.Optional[T.Dict[str, str]]r<   )r=   s   "r>   r?   GnuCompiler.__annotate__#  s     f f < fr@   c                	L  < \         SV `  4        T;'       g    / V n        V P                  P	                  \        R 4      \        R4      \        R4      \        R4      04       \        P                  ! V P                  V P                  4      V n
        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        R# )
b_coloroutb_lto_threadsb_thinlto_cacheb_thinlto_cache_dirN)superr|   rH  rr   updater   r   version_comparer#  _COLOR_VERSION_has_color_support_WPEDANTIC_VERSION_has_wpedantic_support_LTO_AUTO_VERSION_has_lto_auto_support_LTO_CACHE_VERSION_has_lto_cache_support)rz   rH  	__class__s   &&r>   r|   GnuCompiler.__init__#  s    }}"  )L"99_;U"+,=">	J_@`"b 	c"*":":4<<I\I\"]&.&>&>t||TMdMd&e#%-%=%=dllDLbLb%c"&.&>&>t||TMdMd&e#r@   c                    V ^8  d   QhRRRR/# )r7   	colortyper:   r;   r   r<   )r=   s   "r>   r?   rI  -  s      3 ; r@   c                	R    V P                   '       d   \        V,          R ,          # . # ):NNN)rS  r,   )rz   r]  s   &&r>   get_colorout_argsGnuCompiler.get_colorout_args-  s#    """!),Q//	r@   c                    V ^8  d   QhRRRR/# )r7   levelr:   r;   r   r<   )r=   s   "r>   r?   rI  2  s      3 ; r@   c                	~   < \         SV `  V4      pV P                  '       g   R V9   d   RW"P                  R 4      &   V# )z
-Wpedanticz	-pedantic)rO  get_warn_argsrU  index)rz   rb  r  rZ  s   && r>   rd  GnuCompiler.get_warn_args2  s=    w$U+***|t/C .9DL)*r@   c                    V ^8  d   QhRRRR/# )r7   warn_args_by_versionr   r;   r   r<   )r=   s   "r>   r?   rI  ;  s      8P U` r@   c                	    . pVP                  4        F=  w  r4\        P                  ! V P                  R V,           4      '       g   K5  W$,          pK?  	  V# )z>=)itemsr   rQ  r#  )rz   rh  r   r#  	warn_argss   &&   r>   supported_warn_argsGnuCompiler.supported_warn_args;  sG     "6"<"<">G''dWnEE# #? r@   c                    V ^8  d   QhRRRR/# )r7   definer:   r;   r   r<   )r=   s   "r>   r?   rI  B  s     & & & &r@   c                	    WP                   9   # r   rH  rz   ro  s   &&r>   has_builtin_defineGnuCompiler.has_builtin_defineB  s    %%r@   c                    V ^8  d   QhRRRR/# )r7   ro  r:   r;   T.Optional[str]r<   )r=   s   "r>   r?   rI  E  s        r@   c                	L    WP                   9   d   V P                   V,          # R # r   rq  rr  s   &&r>   get_builtin_defineGnuCompiler.get_builtin_defineE  s    \\!<<''r@   c                    V ^8  d   QhRRRR/# r   r<   )r=   s   "r>   r?   rI  J  s     9 9 9 9r@   c                	    \         V,          # r   )r   r   s   &&r>   r   !GnuCompiler.get_optimization_argsJ  s    $%788r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   rI  M  s       r@   c                	    R # )gchr<   r   s   &r>   r   GnuCompiler.get_pch_suffixM  s    r@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   rI  P  s      k r@   c                	    R .# )z-fopenmpr<   r   s   &r>   r   GnuCompiler.openmp_flagsP  s
    |r@   c               (    V ^8  d   QhRRRRRRRR/# )	r7   r  r   coder:   r   r   r;   zT.Tuple[bool, bool]r<   )r=   s   "r>   r?   rI  S  s*        +  S  , 1D r@   c                	:   V P                  W!R V4      ;_uu_ 4       pVP                  ^ 8H  pV P                  R9   d   RVP                  9   d   RpV P                  R9   d   RVP                  9   d   RpR R R 4       XXP                  3#   + '       g   i     L; i)Nzis valid for C/ObjCFzis valid for C++/ObjC++>   r2   r4   >   r1   r3   )r   
returncoder   rF   cached)rz   r  r  r   r   r   s   &&&&  r>   has_argumentsGnuCompiler.has_argumentsS  s    
   T488A\\Q&F}} 116Kqxx6W}}-2Kqxx2W 9 qxx 98s   AB

B	c                    V ^8  d   QhRRRR/# r   r<   )r=   s   "r>   r?   rI  `  s     & &c &k &r@   c                	    R .# )z-Werror=attributesr<   )rz   r   s   &&r>   !get_has_func_attribute_extra_args-GnuCompiler.get_has_func_attribute_extra_args`  s     %%%r@   c               $    V ^8  d   QhRRRRRR/# )r7   prelink_namer:   obj_listr   r;   z!T.Tuple[T.List[str], T.List[str]]r<   )r=   s   "r>   r?   rI  e  s'     E ES EK ELm Er@   c                	     V.R RV.V,           3# )z-rr  r<   )rz   r  r  s   &&&r>   get_prelink_argsGnuCompiler.get_prelink_argse  s    ~dL9HDDDr@   r   Nr   r   r#   thinlto_cache_dirc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r7   r   r   r   r   r   r:   r  rv  r;   r   r<   )r=   s   "r>   r?   rI  h  s4      .E WZ #&GVbmr@   c               	p  < . pV^ 8X  dM   V P                   '       d   VP                  R4       McVP                  R\        P                  ! 4        24       M;V^ 8  d   VP                  RV 24       MVP	                  \
        SV `  WR7      4       Ve!   VP	                  V P                  V4      4       V# )r   z
-flto=autoz-flto=)r   r   )rW  rU   r   determine_worker_countextendrO  r   get_thinlto_cache_args)rz   r   r   r   r  r  rZ  s   &$$$$ r>   r    GnuCompiler.get_lto_compile_argsh  s    a<)))L) fX%D%D%F$GHIq[KK&	*+KK4F4TU( KK334EFGr@   c                    V ^8  d   QhRRRR/# )r7   rX   r:   r;   r   r<   )r=   s   "r>   r?   rI    s     - -3 -; -r@   c                	    R V 2.# )z-flto-incremental=r<   )rz   rX   s   &&r>   r  "GnuCompiler.get_thinlto_cache_args  s     %TF+,,r@   c               $    V ^8  d   QhRRRRRR/# r!  r<   )r=   s   "r>   r?   rI    s!     8 8S 83 8; 8r@   c                	   < VR 8X  d*   \         P                  ! W P                  4      '       d   R.# \        SV `  W4      # )moldz-fuse-ld=mold)r   rQ  _USE_MOLD_VERSIONrO  r+  )r*  r"  r#  rZ  s   &&&r>   r+  GnuCompiler.use_linker_args  s:    V 8 8BWBW X X#$$w&v77r@   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r  r<   )r=   s   "r>   r?   rI    s4      +B TW  #DS_jr@   c               	N    . pVP                  V P                  WVR 7      4       V# ))r   r   r  )r  r   )rz   r   r   r   r  r  s   &$$$$ r>   get_lto_link_argsGnuCompiler.get_lto_link_args  s)    D--V`q-rsr@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   rI    s     I Ik Ir@   c                	0   < \         SV `  4       R .,           # )z-fprofile-correction)rO  r   )rz   rZ  s   &r>   r    GnuCompiler.get_profile_use_args  s    w+-1G0HHHr@   c                   V ^8  d   QhRR/# r   r<   )r=   s   "r>   r?   rI    s     0 0 0r@   c                	   < . pV P                   P                  4       '       d    V P                  4       R 8X  d   VR.,          p\        SV `  4       V,           # )emxomfldz-Zomf)rs   r   get_linker_idrO  get_always_args)rz   r  rZ  s   & r>   r  GnuCompiler.get_always_args  sJ    99$"4"4"6*"DWIDw&(4//r@   )rS  rW  rY  rU  rH  ) r7  r8  r9  r:  r;  idrR  rT  rV  rX  r  r|   r_  rd  rl  rs  rx  r   r   r   r  r  r  r   r  rB  r+  r  r   r  rC  __classcell__rZ  s   @r>   rF  rF    s     
BN" !"f f
 &
9 &
E ]^ )2Y] .-
 8 8
T Z[ &/VZI I0 0r@   rF  c                  B   a  ] tR tRtRtRtRtRtRtR V 3R llt	R	t
V ;t# )
GnuCStdsi  z<Mixin class for gcc based compilers for setting C standards.z>=8.0.0z>=9.0.0>=14.0.0z>=15.0.0c                   V ^8  d   QhRR/# r7   r;   r   r<   )r=   s   "r>   r?   GnuCStds.__annotate__        7 r@   c                	  < \         SV `  4       p. R
Op\        P                  ! V P                  V P
                  4      '       d   VRR.,          p\        P                  ! V P                  V P                  4      '       d   VR.,          p\        P                  ! V P                  V P                  4      '       d   VR.,          p\        P                  ! V P                  V P                  4      '       d   VR.,          pV P                  R4      pW,          p\        V\        4      '       g   Q R4       hVP                  VRR	7       V# )c89c17c18c2xc23c2ystdfor mypyTgnu)r  c99c11)rO  get_optionsr   rQ  r#  _C18_VERSION_C2X_VERSION_C23_VERSION_C2Y_VERSIONform_compileropt_key
isinstancer   set_versionsrz   optsstdskeystd_optrZ  s   &    r>   r  GnuCStds.get_options  s    w"$$##DLL$2C2CDDUEN"D##DLL$2C2CDDUGOD##DLL$2C2CDDUGOD##DLL$2C2CDDUGOD''.)'=11=:=1Tt,r@   r<   )r7  r8  r9  r:  r;  r  r  r  r  r  rC  r  r  s   @r>   r  r    s$    FLLLL r@   r  c                  :   a  ] tR tRtRtRtRtR V 3R lltRtV ;t	# )
GnuCPPStdsi  z>Mixin class for GNU based compilers for setting CPP standards.z>=11.0.0r  c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   GnuCPPStds.__annotate__  r  r@   c                	  < \         SV `  4       p. ROp\        P                  ! V P                  V P
                  4      '       d   VP                  R4       \        P                  ! V P                  V P                  4      '       d   VP                  R4       V P                  R4      pW,          p\        V\        4      '       g   Q R4       hVP                  VRR7       V# )c++98zc++23zc++26r  r  Tr  )r  zc++03zc++11zc++14zc++17zc++1zzc++2azc++20)rO  r  r   rQ  r#  _CPP23_VERSIONrU   _CPP26_VERSIONr  r  r   r  r  s   &    r>   r  GnuCPPStds.get_options  s    w"$
 ##DLL$2E2EFFKK ##DLL$2E2EFFKK ''.)'=11=:=1Tt,r@   r<   )
r7  r8  r9  r:  r;  r  r  r  rC  r  r  s   @r>   r  r    s    HNN r@   r  )z-Wcast-qualz-Wconversionz-Wfloat-equalz
-Wformat=2z-Winlinez-Wmissing-declarationsz-Wredundant-declsz-Wshadowz-Wundefz-Wuninitializedz-Wwrite-strings)z-Wdisabled-optimizationz-Wpackedz-Wpadded)z-Wmulticharz-Wswitch-defaultz-Wswitch-enumz-Wunused-macros)z-Warray-bounds=2z-Wlogical-opz-Wstrict-aliasing=3z-Wvla)z-Wdouble-promotionz-Wsuggest-attribute=constz-Wsuggest-attribute=noreturnz-Wsuggest-attribute=purez-Wtrampolines)z-Wduplicated-condz-Wnull-dereferencez-Wshift-negative-valuez-Wshift-overflow=2z-Wunused-const-variable=2)z-Wallocaz-Walloc-zeroz-Wformat-overflow=2z-Wformat-truncation=2z-Wstringop-overflow=3)z-Wcast-align=strictz-Wsuggest-attribute=coldz-Wsuggest-attribute=malloc)z-Wbidi-chars=ucnz-Wopenacc-parallelismz-Wtrivial-auto-var-init)z-Wbad-function-castz-Wmissing-prototypesz-Wnested-externsz-Wstrict-prototypes)z-Wctor-dtor-privacyz-Weffc++z-Wnon-virtual-dtorz-Wold-style-castz-Woverloaded-virtualz-Wsign-promo)z-Wsuggest-final-methodsz-Wsuggest-final-typesz-Wsuggest-override)z-Wmultiple-inheritancez-Wplacement-new=2z-Wvirtual-inheritance)z-Waligned-new=allz-Wnoexcept-typez
-Wregister)z-Wcomma-subscriptz-Wmismatched-tagsz-Wredundant-tagsz
-Wvolatile)z!-Wdeprecated-enum-enum-conversionz"-Wdeprecated-enum-float-conversionz-Winvalid-imported-macros).__conditional_annotations__
__future__r   r=  r@  rL   r   r   rQ   typingTr"   r   r   optionsr   r   mesonbuild.compilers.compilersr   TYPE_CHECKING_typingr	   buildr
   r   	compilersr   objectr   __annotations__r   r!   r(   r,   r-   r.   r/   r0   rK   rA  r`   ABCMetarb   rF  r  r  )r  s   @r>   <module>r     s  
 # " ? 
  	  	     / ;???0$5$ H
 
24&/ +  R%%%%%%3 /  
G9	G9
XJ
XJi[j\j\	G9
XJ
\N: 6  &'()$%*++-JK8 4  '(+,)*,( <_5 _5  _5&  '_52  3_58 %9_5@ A_5F  G_5R  S_5` (a_5f $g_5l m_5r s_5z  {_5H  I_5V W_5\  ]_5f g_5l    u_5 1 _V     0 , 2      )  #  
  
  
       m;2 . ;D  
 !3 /  	5
Mo	 T" #@t?h#++ t?nA0/ A0Hx 6 r@   