
    -PhX                       U d dl mZ 	 d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	ddl
mZ ddl
mZ ddlmZmZ d dlmZ e	j        rddlmZ dd	lmZ dd
lmZ ddlmZ neZg dgdZded<   g dgdgdgdgdgdgdZded<   dgdgdgdgdgdgd gd!gd"gd#gd$
Zded%<   g d&gd'gd(gd)gd(d*gd+Zded,<   d-gd.gd/gd0Z ded1<   i d2g d3d4g d5d6g d7d8d9gd:d;d<gd=d>gd?g d@dAg dBdCdDgdEdFgdGdHgdIdJdKgdLg dMdNg dOdPdQgdRg dSdTdUgdVdWgg dXdYZ!dedZ<   g d[d\d]gd^gd_Z"ded`<   g dadbgdcgddgdedfgdggg dhg dig djdkdlgdmdngg dog dpdqZ#dedr<   dsgdtgdudvgdwZ$dedx<   dydzd{d|d}Z% ej&        d~          dd            Z' G d deej(                  Z) G d de)          Z* G d de          Z+ G d de          Z,dS )    )annotationsN   )mesonlib)mlog)	OptionKeyUserStdOption)CompileCheckMode)ImmutableListProtocol)MutableKeyedOptionDictType)Environment   )Compilerz-g)FTzT.Dict[bool, T.List[str]]clike_debug_argsz-O0z-Ogz-O1z-O2z-O3z-Os)plain0g123sT.Dict[str, T.List[str]]gnu_optimization_argsz-mmmxz-mssez-msse2z-msse3z-mssse3z-msse4.1z-msse4.2z-mavxz-mavx2z
-mfpu=neon)
mmxssesse2sse3ssse3sse41sse42avxavx2neongnulike_instruction_set_argsz-fvisibility=defaultz-fvisibility=internalz-fvisibility=hiddenz-fvisibility=protectedz-fvisibility-inlines-hidden) defaultinternalhidden	protectedinlineshiddengnu_symbol_visibility_argsz-fdiagnostics-color=autoz-fdiagnostics-color=alwaysz-fdiagnostics-color=never)autoalwaysnevergnu_color_args0.0.0)z-Wcast-qualz-Wconversionz-Wfloat-equalz
-Wformat=2z-Winlinez-Wmissing-declarationsz-Wredundant-declsz-Wshadowz-Wundefz-Wuninitializedz-Wwrite-stringsz3.0.0)z-Wdisabled-optimizationz-Wpackedz-Wpaddedz3.3.0)z-Wmulticharz-Wswitch-defaultz-Wswitch-enumz-Wunused-macrosz4.0.0z-Wmissing-include-dirs4.1.0z-Wunsafe-loop-optimizationsz-Wstack-protectorz4.2.0z-Wstrict-overflow=5z4.3.0)z-Warray-bounds=2z-Wlogical-opz-Wstrict-aliasing=3z-Wvla4.6.0)z-Wdouble-promotionz-Wsuggest-attribute=constz-Wsuggest-attribute=noreturnz-Wsuggest-attribute=purez-Wtrampolines4.7.0z-Wvector-operation-performance4.8.0z-Wsuggest-attribute=format4.9.0z-Wdate-time5.1.0z-Wformat-signednessz-Wnormalized=nfc6.1.0)z-Wduplicated-condz-Wnull-dereferencez-Wshift-negative-valuez-Wshift-overflow=2z-Wunused-const-variable=27.1.0)z-Wallocaz-Walloc-zeroz-Wformat-overflow=2z-Wformat-truncation=2z-Wstringop-overflow=3z7.2.0z-Wduplicated-branches8.1.0)z-Wcast-align=strictz-Wsuggest-attribute=coldz-Wsuggest-attribute=malloc9.1.0z-Wattribute-alias=2z-Wanalyzer-too-complexz-Warith-conversion)z-Wbidi-chars=ucnz-Wopenacc-parallelismz-Wtrivial-auto-var-init)10.1.0z12.1.0gnu_common_warning_args)z-Wbad-function-castz-Wmissing-prototypesz-Wnested-externsz-Wstrict-prototypesz-Wold-style-definitionz-Winit-selfz-Wc++-compat)r/   z3.4.0r0   gnu_c_warning_args)z-Wctor-dtor-privacyz-Weffc++z-Wnon-virtual-dtorz-Wold-style-castz-Woverloaded-virtualz-Wsign-promoz-Wstrict-null-sentinelz
-Wnoexceptz-Wzero-as-null-pointer-constantz	-Wabi-tagz-Wuseless-castz-Wconditionally-supported)z-Wsuggest-final-methodsz-Wsuggest-final-typesz-Wsuggest-override)z-Wmultiple-inheritancez-Wplacement-new=2z-Wvirtual-inheritance)z-Waligned-new=allz-Wnoexcept-typez
-Wregisterz-Wcatch-value=3z-Wextra-semiz-Wdeprecated-copy-dtorz-Wredundant-move)z-Wcomma-subscriptz-Wmismatched-tagsz-Wredundant-tagsz
-Wvolatile)z!-Wdeprecated-enum-enum-conversionz"-Wdeprecated-enum-float-conversionz-Winvalid-imported-macros)r/   z4.0.1r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   z11.1.0gnu_cpp_warning_argsz
-Wselectorz-Wundeclared-selectorz-Wassign-interceptz-Wstrict-selector-match)r/   z3.3r0   gnu_objc_warning_argsczc++zobjective-czobjective-c++)r?   cppobjcobjcpp)maxsizecompilerT.Tuple[str, ...]langstrreturn'ImmutableListProtocol[str]'c                   |t           vrg S t           |         }t          j                                        }d|d<   t	          |           d| dddgz   }t          j        |t          j        |          \  }}}d}g }|	                    d	          D ]n}|
                    d
          }|dk    r	|dk    rd}&|dk    r|dk    rd}5|                    |           K|dk    r|dk    r n|                    |           o|s;t          j        d                    d                    |                               |d |D             z  }|S )NCLC_ALL-xz-Ez-v-)stderrenvr   
z 
	z"#include "..." search starts here:   z"#include <...> search starts here:r   zEnd of search list.z1No include directory found parsing "{cmd}" output )cmdc                L    g | ]!}t           j                            |          "S  )ospathnormpath).0xs     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/mixins/gnu.py
<listcomp>z0gnulike_default_include_dirs.<locals>.<listcomp>[  s(    111abgq!!111    )gnu_lang_maprW   environcopylistr   
Popen_safe
subprocessSTDOUTsplitstripappendr   warningformatjoin)	rD   rF   rP   rT   _stdoutparse_statepathslines	            r\   gnulike_default_include_dirsrq   >  s   <	D
*//

CCM
x..KKKtS9
9C&s:3D#NNNLAvqKET"" # #zz)$$!;;;A;;;T""""A,,,T""" dHOOTWT\T\]`TaTaObbccc	1151111ELr^   c                     e Zd ZdZdZdBdZdCdZdCdZej	        dDd            Z
dEdZej	        dFd            ZdGdZdHdZdCdZej	        dId            ZdJdZdKdZedFd            ZdCdZdCd ZdLd#Z ej                    dMd%            ZdNd'ZdOd)Zd*d+d,dPd0ZdQd2ZdRd4ZdSd7Z dCd8Z!dTd;Z"e#dUd>            Z$dCd?Z%dCd@Z&dAS )VGnuLikeCompilera   
    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,rH   Nonec                   d dD             | _         | j                                        sY| j                                        s@| j                                        s'| j                             t          d                     | j                                        r| j                                        r'| j                             t          d                     | j                                        s'| j                             t          d                     | j                            d           | j                            d           d S )Nc                ,    h | ]}t          |          S rV   )r   )rZ   os     r\   	<setcomp>z+GnuLikeCompiler.__init__.<locals>.<setcomp>j  s1     H H HIaLLH H Hr^   )b_pchb_ltob_pgo
b_coverageb_ndebugb_staticpicb_pieb_lundef
b_asneeded
b_sanitizer   sx)	base_optionsinfo
is_windows	is_cygwin
is_openbsdaddr   is_hurdcan_compile_suffixesselfs    r\   __init__zGnuLikeCompiler.__init__i  s?   H H#GH H H 	$$&& 	9$)*=*=*?*? 	949CWCWCYCY 	9!!)J"7"7888y##%% 	;)<)<)>)> 	;!!)L"9"9:::y  "" 	;!!)L"9"9:::!%%c***!%%d+++++r^   T.List[str]c                    | j                                         s2| j                                         s| j                                         rg S dgS )Nz-fPIC)r   r   r   	is_darwinr   s    r\   get_pic_argszGnuLikeCompiler.get_pic_argsw  sO    9!! 	TY%8%8%:%: 	di>Q>Q>S>S 	Iyr^   c                    dgS )Nz-fPIErV   r   s    r\   get_pie_argszGnuLikeCompiler.get_pie_args|  s
    yr^   optimization_levelrG   c                    d S NrV   r   r   s     r\   get_optimization_argsz%GnuLikeCompiler.get_optimization_args      r^   is_debugboolc                    t           |         S r   )r   )r   r   s     r\   get_debug_argszGnuLikeCompiler.get_debug_args  s    ))r^   c                    d S r   rV   r   s    r\   get_pch_suffixzGnuLikeCompiler.get_pch_suffix  r   r^   fnameT.Tuple[str, str]c                D    t           j                            |          |fS r   )rW   rX   dirname)r   r   s     r\   split_shlib_to_partsz$GnuLikeCompiler.split_shlib_to_parts  s    wu%%u,,r^   instruction_setT.Optional[T.List[str]]c                8    t                               |d           S r   )r#   get)r   r   s     r\   get_instruction_set_argsz(GnuLikeCompiler.get_instruction_set_args  s    +//FFFr^   c                    t          t          |                     d                    | j                                                  S )NF)ccache)rq   tupleget_exelistlanguagera   r   s    r\   get_default_include_dirsz(GnuLikeCompiler.get_default_include_dirs  s;    +E$2B2B%2B2P2P,Q,QSWS`aaffhhhr^   rP   r   c                    d S r   rV   r   rP   s     r\   openmp_flagszGnuLikeCompiler.openmp_flags  r   r^   vistypec                >    |dk    r| j         dvrd}t          |         S )Nr)   >   r@   rB   r'   )r   r*   )r   r   s     r\   r*   z*GnuLikeCompiler.gnu_symbol_visibility_args  s*    o%%$-?P*P*PG)'22r^   defsfilec                    t          |t                    st          d          | j                                        s| j                                        r|gS g S )Nz%Module definitions file should be str)
isinstancerG   RuntimeErrorr   r   r   )r   r   s     r\   gen_vs_module_defs_argsz'GnuLikeCompiler.gen_vs_module_defs_args  s^    (C(( 	HFGGG 9!! 	TY%8%8%:%: 	:	r^   c                     dS )NgccrV   rV   r^   r\   get_argument_syntaxz#GnuLikeCompiler.get_argument_syntax  s    ur^   c                    dgS )Nz-fprofile-generaterV   r   s    r\   get_profile_generate_argsz)GnuLikeCompiler.get_profile_generate_args  s    $%%r^   c                    dgS )Nz-fprofile-userV   r   s    r\   get_profile_use_argsz$GnuLikeCompiler.get_profile_use_args  s      r^   parameter_list	build_dirc           
        t          |          D ]t\  }}|d d         dk    s|d d         dk    rS|d d         t          j                            t          j                            ||dd                              z   ||<   u|S )Nr   -Iz-L)	enumeraterW   rX   rY   rk   )r   r   r   idxis        r\   &compute_parameters_with_absolute_pathsz6GnuLikeCompiler.compute_parameters_with_absolute_paths  s    // 	_ 	_FC!u}}"1"&'ebg.>.>rw||IWXYZY[Y[W\?]?].^.^&^s#r^   'Environment'c                    dg}|                      d||d t          j        d          5 }|j        cd d d            S # 1 swxY w Y   d S )Nz--print-search-dirsr$   T)
extra_argsdependenciesmodewant_output)_build_wrapperr	   COMPILErm   )r   rP   r   ps       r\   _get_search_dirsz GnuLikeCompiler._get_search_dirs  s    +,
  SZ.29I9Q-1 ! 3 3 	678	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =AApathstrc                   t           j        }|dk    rt          j        dd|          }d |                    |          D             }g }|D ]}t          j        |          }|                                r	 |                    d          	                                }||vr|
                    |           n# t          $ r Y nw xY w|	                                }||vr|
                    |           |S )N;z	:([^/\\])z;\1c                    g | ]}||S rV   rV   )rZ   r   s     r\   r]   z:GnuLikeCompiler._split_fetch_real_dirs.<locals>.<listcomp>  s    888qa8888r^   T)rW   pathsepresubrf   pathlibPathexistsresolveas_posixrh   FileNotFoundError)	r   r   r   ro   resultr   pobjresolved
unresolveds	            r\   _split_fetch_real_dirsz&GnuLikeCompiler._split_fetch_real_dirs  s    * c>>f\67;;G 98GMM'22888  	. 	.A <??D{{}} 	.#||D11::<<Hv--h///(   D!]]__
V++MM*---s   7A B88
CCnamec                    |                      |          }|                    d          D ]K}|                    |dz             r1|                     |                    dd          d                   c S Lg S )zP
        Get dirs from the compiler, either `libraries:` or `programs:`
        rQ   :=rR   )r   rf   
startswithr   )r   rP   r   stdorp   s        r\   get_compiler_dirsz!GnuLikeCompiler.get_compiler_dirs  s     $$S))JJt$$ 	J 	JDtcz** J224::c13E3Ea3HIIIIIJ	r^   r   r%   threadsr   r   intr   c                   dgS )Nz-fltorV   )r   r   r   s      r\   get_lto_compile_argsz$GnuLikeCompiler.get_lto_compile_args  s     yr^   valuec                r    |s|S dd                     |          z   g}d|v r|                    d           |S )Nz-fsanitize=,addressz-fno-omit-frame-pointer)rk   rh   )r   r   argss      r\   sanitizer_compile_argsz&GnuLikeCompiler.sanitizer_compile_args  sI     	L/0KK1222r^   
outputnamec                
    d|gS )N-orV   )r   r   s     r\   get_output_argszGnuLikeCompiler.get_output_args  s    j!!r^   	outtargetoutfilec                    dd|d|gS )Nz-MDz-MQz-MFrV   )r   r   r   s      r\   get_dependency_gen_argsz'GnuLikeCompiler.get_dependency_gen_args  s    ui88r^   c                    dgS )Nz-crV   r   s    r\   get_compile_only_argsz%GnuLikeCompiler.get_compile_only_args  s	    vr^   rX   	is_systemc                &    |sd}|rd|z   gS d|z   gS )N.z-isystemr   rV   )r   rX   r  s      r\   get_include_argsz GnuLikeCompiler.get_include_args  s1     	D 	'%&&t}r^   linkerversionc                F    |dvrt          j        d| d          d| gS )N>   bfdlldgoldz?Unsupported linker, only bfd, gold, and lld are supported, not r  z	-fuse-ld=)r   MesonException)clsr  r  s      r\   use_linker_argszGnuLikeCompiler.use_linker_args  sF    ///)[RX[[[] ] ]$F$$%%r^   c                    dgS )Nz
--coveragerV   r   s    r\   get_coverage_argsz!GnuLikeCompiler.get_coverage_args  s
    ~r^   c                x    t                               | j        d          }|                                 d| gz   S )Nzassembler-with-cpprM   )r_   r   r   get_preprocess_only_args)r   rF   s     r\   get_preprocess_to_file_argsz+GnuLikeCompiler.get_preprocess_to_file_args  s;     /CDD,,..+t++>>r^   N)rH   rt   rH   r   r   rG   rH   r   )r   r   rH   r   rH   rG   )r   rG   rH   r   )r   rG   rH   r   rP   r   rH   r   )r   rG   rH   r   )r   rG   rH   r   )r   r   r   rG   rH   r   )rP   r   rH   rG   )r   rG   rH   r   )rP   r   r   rG   rH   r   r   r   r   rG   rH   r   )r   r   rH   r   )r   rG   rH   r   )r   rG   r   rG   rH   r   )rX   rG   r  r   rH   r   r  rG   r  rG   rH   r   )'__name__
__module____qualname____doc__LINKER_PREFIXr   r   r   abcabstractmethodr   r   r   r   r   r   r   r*   r   staticmethodr   r   r   r   	functools	lru_cacher   r   r   r   r   r   r   r  r  classmethodr  r  r  rV   r^   r\   rs   rs   _  s         M, , , ,   
    	   * * * * 	   - - - -G G G Gi i i i 	   3 3 3 3
       \& & & &! ! ! !    Y   # # # #J    67I      
   " " " "9 9 9 9       & & & [&   ? ? ? ? ? ?r^   rs   )	metaclassc                       e Zd ZdZdZd2 fdZd3d
Zd4 fdZd5dZd6dZ	d7dZ
d8dZd9dZd:dZd;d!Zd<d#Zd=d'Zd(d)d*d> fd-Zed? fd0            Zd@ fd1Z xZS )AGnuCompilerz
    GnuCompiler represents an actual GCC in its many incarnations.
    Compilers imitating GCC (Clang/Intel) should use the GnuLikeCompiler ABC.
    r   definesT.Optional[T.Dict[str, str]]c                   t                                                       |pi | _        | j                            t          d          t          d          h           t          j        | j        d          | _	        t          j        | j        d          | _
        t          j        | j        d          | _        d S )N
b_coloroutb_lto_threadsz>=4.9.0z>=4.8.0z>=10.0)superr   r(  r   updater   r   version_comparer  _has_color_support_has_wpedantic_support_has_lto_auto_support)r   r(  	__class__s     r\   r   zGnuCompiler.__init__$  s    }"  )L"9"99_;U;U!VWWW"*":4<"S"S&.&>t|Y&W&W#%-%=dlH%U%U"""r^   	colortyperG   rH   r   c                >    | j         rt          |         d d          S g S r   )r0  r.   )r   r4  s     r\   get_colorout_argszGnuCompiler.get_colorout_args,  s&    " 	0!),QQQ//	r^   levelc                    t                                          |          }| j        sd|v rd||                    d          <   |S )Nz
-Wpedanticz	-pedantic)r-  get_warn_argsr1  index)r   r7  r   r3  s      r\   r9  zGnuCompiler.get_warn_args1  sL    ww$$U++* 	9|t/C/C .9DL))*r^   warn_args_by_versionr   c                    g }|                                 D ]'\  }}t          j        | j        d|z             r||z  }(|S )Nz>=)itemsr   r/  r  )r   r;  r   r  	warn_argss        r\   supported_warn_argszGnuCompiler.supported_warn_args:  sR     "6"<"<">"> 	$ 	$GY'dWnEE $)#r^   definer   c                    || j         v S r   r(  r   r@  s     r\   has_builtin_definezGnuCompiler.has_builtin_defineA  s    %%r^   T.Optional[str]c                2    || j         v r| j         |         S d S r   rB  rC  s     r\   get_builtin_definezGnuCompiler.get_builtin_defineD  s!    T\!!<''tr^   r   c                    t           |         S r   )r   r   s     r\   r   z!GnuCompiler.get_optimization_argsI  s    $%788r^   c                    dS )NgchrV   r   s    r\   r   zGnuCompiler.get_pch_suffixL  s    ur^   rP   r   c                    dgS )Nz-fopenmprV   r   s     r\   r   zGnuCompiler.openmp_flagsO  s
    |r^   r   r   coder   r	   T.Tuple[bool, bool]c                    |                      |||d |          5 }|j        dk    }| j        dv rd|j        v rd}| j        dv rd|j        v rd}d d d            n# 1 swxY w Y   ||j        fS )Nr   >   r@   rB   zis valid for C/ObjCF>   r?   rA   zis valid for C++/ObjC++)r   
returncoder   rO   cached)r   r   rP   rL  r   r   r   s          r\   has_argumentszGnuCompiler.has_argumentsR  s    
   sD$== 	\Q&F} 1116Kqx6W6W}--2Kqx2W2W	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 qxs   4AA!Ar   c                    dgS )Nz-Werror=attributesrV   )r   r   s     r\   !get_has_func_attribute_extra_argsz-GnuCompiler.get_has_func_attribute_extra_args_  s     %%%r^   prelink_nameobj_list!T.Tuple[T.List[str], T.List[str]]c                    |gdd|g|z   fS )Nz-rr   rV   )r   rT  rU  s      r\   get_prelink_argszGnuCompiler.get_prelink_argsd  s    ~dL9HDDDr^   r   r%   r   r   r   c                   |dk    r!| j         rdgS dt          j                     gS |dk    rd| gS t                                          |          S )Nr   z
-flto=autoz-flto=)r   )r2  r   determine_worker_countr-  r   )r   r   r   r3  s      r\   r   z GnuCompiler.get_lto_compile_argsg  sq    a<<) &$~% AX<>>@@AAq[[&W&&''ww++G+<<<r^   r  r  c                    |dk    rt          j        |d          rdgS t                                          ||          S )Nmoldz>=12.0.1z-fuse-ld=mold)r   r/  r-  r  )r  r  r  r3  s      r\   r  zGnuCompiler.use_linker_argsr  sC    V 8* M M#$$ww&&vw777r^   c                L    t                                                      dgz   S )Nz-fprofile-correction)r-  r   )r   r3  s    r\   r   z GnuCompiler.get_profile_use_argsx  s"    ww++--1G0HHHr^   )r(  r)  )r4  rG   rH   r   )r7  rG   rH   r   )r;  r   rH   r   )r@  rG   rH   r   )r@  rG   rH   rE  r  r  r  )
r   r   rP   r   rL  rG   r   r	   rH   rM  )r   rG   rH   r   )rT  rG   rU  r   rH   rV  r  r  r  )r  r  r  r  idr   r6  r9  r?  rD  rG  r   r   r   rQ  rS  rX  r   r$  r  r   __classcell__r3  s   @r\   r'  r'    s         
BV V V V V V   
        & & & &   
9 9 9 9             & & & &
E E E E 67I 	= 	= 	= 	= 	= 	= 	= 	= 8 8 8 8 8 [8
I I I I I I I I I Ir^   r'  c                  4     e Zd ZdZdZdZdZdZd	 fdZ xZ	S )
GnuCStdsz<Mixin class for gcc based compilers for setting C standards.z>=8.0.0z>=9.0.0>=14.0.0z>=15.0.0rH   r   c                    t                                                      }g d}t          j        | j        | j                  r|ddgz  }t          j        | j        | j                  r|dgz  }t          j        | j        | j                  r|dgz  }t          j        | j        | j                  r|dgz  }| 	                    d          }||         }t          |t                    s
J d            |                    |d	
           |S )N)c89c99c11c17c18c2xc23c2ystdfor mypyTgnu)r-  get_optionsr   r/  r  _C18_VERSION_C2X_VERSION_C23_VERSION_C2Y_VERSIONform_compileropt_keyr   r   set_versionsr   optsstdskeystd_optr3  s        r\   rq  zGnuCStds.get_options  s   ww""$$$$$#DL$2CDD 	#UEN"D#DL$2CDD 	UGOD#DL$2CDD 	UGOD#DL$2CDD 	UGOD''..s)'=11==:===Tt,,,r^   rH   r   )
r  r  r  r  rr  rs  rt  ru  rq  r_  r`  s   @r\   rb  rb  |  sW        FFLLLL         r^   rb  c                  ,     e Zd ZdZdZdZd fdZ xZS )
GnuCPPStdsz>Mixin class for GNU based compilers for setting CPP standards.z>=11.0.0rc  rH   r   c                   t                                                      }g d}t          j        | j        | j                  r|                    d           t          j        | j        | j                  r|                    d           |                     d          }||         }t          |t                    s
J d            |                    |d           |S )N)zc++98zc++03zc++11zc++14zc++17zc++1zzc++2azc++20zc++23zc++26rm  rn  Tro  )r-  rq  r   r/  r  _CPP23_VERSIONrh   _CPP26_VERSIONrv  r   r   rw  rx  s        r\   rq  zGnuCPPStds.get_options  s    ww""$$
 
 
 #DL$2EFF 	!KK   #DL$2EFF 	!KK   ''..s)'=11==:===Tt,,,r^   r}  )r  r  r  r  r  r  rq  r_  r`  s   @r\   r  r    sM        HHNN         r^   r  )rD   rE   rF   rG   rH   rI   )-
__future__r   r  r"  rW   r   r   rd   typingTr$   r   r   optionsr   r   mesonbuild.compilers.compilersr	   TYPE_CHECKING_typingr
   r   environmentr   	compilersr   objectr   __annotations__r   r#   r*   r.   r;   r<   r=   r>   r_   r#  rq   ABCMetars   r'  rb  r  rV   r^   r\   <module>r     s  
 # " " " " " " ? 



     				  				                     / / / / / / / / ; ; ; ; ; ;? 
000000555555******$$$$$$$ H
 &/ /      





3 3      99JJ[\\9JN: :      	&'()$%*++-JK8 8      ((+,)*, ,    <_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n 	!  u_5 _5 _5  _ _ _ _V   	!
 	0 0     2   	! 	 	* 	
 	$  
  
   	
 	!    m;2 ;2  ; ; ; ;F 	 	  	!3 3      
	  T"""   #"@{? {? {? {? {?h#+ {? {? {? {?|\I \I \I \I \I/ \I \I \I~    x   6         r^   