
    -Phd                      U d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ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ej        r,dd	lmZ dd
lmZ ddl m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z* i Z+de,d<    e            r+g de+d<   g de+d<   g de+d<   g de+d<   g de+d<   ddge+d<   nj ej-                    .                                dk    rg d e+d<   g d!e+d<   d"ge+d<   d#ge+d<   ng d$e+d<   g d%e+d<   d"d&ge+d<   d#d'ge+d<   g d(e+d<   ddge+d<   g d)e+d*<   d+ge+d,<   d-ge+d.<   d/ge+d0<   d1ge+d2<   d3ge+d4<   d5d6ge+d5<   d7d8ge+d9<   d:ge+d:<   d;ge+d<<   d=ge+d><   d?ge+d@<   dAge+dB<   dCge+dD<   dEdFge+dE<   ddOZ/ddSZ0	 dddWZ1	 ddd_Z2ddbZ3ddcddfZ4ddgZ5ddhZ6ddiZ7ddjZ8ddlZ9ddmZ:ddnZ;ddoZ<ddpZ=ddqZ>ddrZ?ddtZ@dduZAddvZBddwZCddxZDddzZEdd}ZFdd~ZGddZHddZIdS )    )annotations   )	MesonExceptionEnvironmentExceptionMachineChoice	join_argssearch_version
is_windows
Popen_safePopen_safe_loggedwindows_proof_rm)BinaryTable)mlog)guess_win_linkerguess_nix_linkerN   )Compiler)	CCompiler)CPPCompiler)FortranCompiler)RustCompiler)StaticLinkerDynamicLinker)EnvironmentzT.Dict[str, T.List[str]]defaults)iclclccgccclangclang-clpgccc)r   r   c++g++clang++r!   cpp)ifortgfortran	flang-newflang	pgfortrang95fortran)r    r!   r   objc)r&   r!   r%   objcppcscmcscse2k)r   r   lccr    )r$   r%   zl++r&   r    r&   )r   r   r    nvcr"   iccicx)r$   r%   r&   znvc++zpgc++icpcicpxr   r%   )r)   r*   r+   	nvfortranr,   r(   ifxr-   )ldc2ldcgdcdmddjavacjavanvcccudarustcrustswiftcswiftvalacvalacythoncython3argarstatic_linkerstriplibvs_static_linkerllvm-libclang_cl_static_linkernvlinkcuda_static_linkerzgcc-argcc_static_linkerzllvm-arclang_static_linkernasmyasmenv'Environment'langstrfor_machiner   returnT.Optional[Compiler]c                6   i dt           dt          dt          dt          dt          dt
          dt          dt          d	t          d
t          dt          dt          dt          dt          dt          dt          }||v r ||         | |          nd S )Nr#   r'   r/   rE   r0   rC   r3   rK   rA   rG   r.   rI   rL   rZ   masm	linearasm)detect_c_compilerdetect_cpp_compilerdetect_objc_compilerdetect_cuda_compilerdetect_objcpp_compilerdetect_java_compilerdetect_cs_compilerdetect_vala_compilerdetect_d_compilerdetect_rust_compilerdetect_fortran_compilerdetect_swift_compilerdetect_cython_compilerdetect_nasm_compilerdetect_masm_compilerdetect_linearasm_compiler)r\   r^   r`   lang_maps       [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/detect.pycompiler_from_languagerx   T   s   SS"S 	$S 	$	S
 	(S 	$S 	 S 	$S 	S 	$S 	*S 	&S 	(S 	$S 	$S  	.!SH$ 04x/?/?>8D>#{+++TI    skip_sanity_checkbool
subprojectc                   t          | ||          }||S |j        |k    sJ | j                            ||| |           |s(|                    |                                 |            || j        j        |j                 |<   |S N)rx   r`   coredataprocess_compiler_optionssanity_checkget_scratch_dir	compilers)r\   r^   r`   rz   r|   comps         rw   detect_compiler_forr   i   s    !#t[99D|{****L))$c:FFF 6#--//55559CL4+,T2Kry   Fallow_build_machine)T.Tuple[T.List[T.List[str]], T.List[str]]c                V   |                      ||          }|t          j        |          \  }}|g}ns| j                            |          s/|rt          | |t          j                  S t          |d          d t          |         D             }t          j
                    }||fS )z
    The list of compilers is detected in the exact same way for
    C, C++, ObjC, ObjC++, Fortran, CS so consolidate it here.
    Nz= compiler binary not defined in cross file [binaries] sectionc                    g | ]}|gS  r   .0xs     rw   
<listcomp>z"_get_compilers.<locals>.<listcomp>   s    111QaS111ry   )lookup_binary_entryr   parse_entrymachinesmatches_build_machine_get_compilersr   BUILDr   r   detect_compiler_cache)r\   r^   r`   r   valuer   ccacher   s           rw   r   r   x   s     ##K66E".u55fF		|11+>> 	q" F%c41DEEE&$'o'o'oppp11(4.111	244fry   compiler
exceptions'T.Mapping[str, T.Union[Exception, str]]binariesT.List[T.List[str]]bintype
T.NoReturnc                    d| d| }| r+|dz  }|                                  D ]\  }}|d| d| dz  }t          |          )NzUnknown z(s): z-
The following exception(s) were encountered:z

Running `z` gave "")itemsr   )r   r   r   errmsgr#   es         rw   _handle_exceptionsr      sy     100h00F 4BB$$&& 	4 	4DAq3A33q3333FF
v
&
&&ry   r   r   c           	        ddl m} ddlm} |                     |j        d          }||g}nd t
          d         D             }|j        dk    rt
          d	         g|z   }nZ|                                d
k    rt
          d         t
          d         g}n&|j        dk    rt
          d         g|z   }n|j        dk    rAt
          d         }|j	        
                    d          d         }|d          d| g|g|z   }n|j        dk    r?t                      r.t
          d         t
          d         |                                g}nu|}nr|j        dk    r|j        dk    rdgg}nWt                      r|j        dk    rdgg}n9t                      r)|j        dk    rt
          d         t
          d         g|z   }n|}i }	|D ]i}t          j                            |d                   }
t!          d |D                       rd}n	|
dv rd}nd}	 t#          ||gz   d           \  }}}n-# t$          $ r }||	t'          ||gz             <   Y d }~d }~ww xY wd!|v r'|                    |t+          |d"d                     c S d#|                                v sd#|                                v r'|                    |t+          |d"d                     c S d$|v r|                    |          c S |j        dk    rd%|
v r|                    |          c S d&|v sd'|v r4t7          ||j                  sJ |                    ||j                  c S d(|v rHt7          ||j                  sJ |                    ||j        |                                )          c S d*|v r8d+|v r4t7          ||j                  sJ |                    ||j                  c S |                     d,          rd-|
v r|!                    |          c S |                     d.          rd/|
v r|"                    |          c S d0|v rMd1|
v r|#                    |          c S d2|
v r|$                    |          c S |%                    |          c S |                     d3          r|&                    |          c S |'                                                     d4          s'|'                                                     d5          r2d6|v r|(                    |          c S |)                    |          c S d7|v r|*                    |          c S |j        dk    r|+                    |j        |          c S |j        dk    r2|                     d8          r|,                    |j        |          c S |j        dk    r,|                     d9          r|-                    |          c S |j        dk    r2|                     d:          r|+                    |j        |          c S kt]          |	|d;           t_          d<          )=Nr   )rA   r   linkersrN   c                    g | ]}|gS r   r   )r   ls     rw   r   z(detect_static_linker.<locals>.<listcomp>   s    BBB1A3BBBry   rP   rE   rW   msvcrS   rU   r   rX   r    rY   .r   -rA   zintel-clr#   xilibpgirZ   c              3  X   K   | ]%}t           j                            |          d v V  &dS )>   lib.exe	xilib.exellvm-lib.exerR   r   rT   Nospathbasenamer   s     rw   	<genexpr>z'detect_static_linker.<locals>.<genexpr>   s9      {{oprw""&jj{{{{{{ry   /?>   ar6x.exe	ar430.exe	armar.exe
ar2000.exear6xar430armarar2000?	--versionzDetecting archiver viamsgzxilib: executing 'lib'machinez/OUT:z"ar-Error-Unknown switch: --versionr   zDMD32 D CompilerzDMD64 D CompilerzLDC - the LLVM D compiler)
rsp_syntaxGDCz based on D RenesasrlinkzGNU arzxc16-arzTexas Instruments Incorporatedr   ar6000zThe CompCert
Metrowerks	FreescaleARMTASKING VX-toolsetusageUsagezar: bad option: --linker/Unreachable code (exception to make mypy happy))0 rA   r   r   r`   r   languageget_argument_syntaxidversionsplitr
   get_linker_exelistr   r   r   anyr   OSErrorr   IntelVisualStudioLinkergetattrupperVisualStudioLinkerPGIStaticLinker
returncodeArmarLinker
isinstance	DCompilerDLinkerarchrsp_file_syntax
startswith
CcrxLinker
Xc16LinkerC2000LinkerC6000LinkerTILinkerCompCertLinkerrQ   MetrowerksStaticLinkerARM%MetrowerksStaticLinkerEmbeddedPowerPCTaskingStaticLinkerArLinkerAppleArLinkerAIXArLinkerr   r   )r\   r   rA   r   r   trialsdefault_linkersllvm_arsuffixpopen_exceptionslinker_nameargpouterrr   s                   rw   detect_static_linkerr      s8   OOOOO!!!!!!$$X%94@@FBB(ABBB&&345GFF))++v5512H=U4VWFF[E!!234FFF[G##45G%++C003F!!*//v//0':_LFF#%%|| )"#56AY8Z\d\w\w\y\yz([J&&8+<+C+Ci[FF\\ 	%hkU22fXFF\\ 	%hkV3312H=U4VWZiiFF$F :B :Bg&&vay11{{tz{{{{{ 	CCtttCCC	+FcUN@XYYYKAsCC 	 	 	:;Yv~667HHHH	 $s**22678YX\;];]^^^^^ciikk!!W		%;%;--fgh	SW6X6XYYYYY/366**622222<1K!7!7&&v.....$$(:c(A(Ah44444??68=99999&#--h44444??68=XE]E]E_E_?`````C<<Nc11h44444??68=99999>>)$$ 	.K)?)?%%f----->>(## 	.	[(@(@%%f-----+s22;&&**622222[((**622222''/////>>.)) 	2))&1111199;;!!,// 	M399;;3I3I+3V3V 	M||88@@@@@DDVLLLLL3&&..v66666<1##H$8&AAAAA<1!8!8(()=vFFFFF<1!8!8&&v.....<10D!E!E##H$8&AAAAA':::
P
Q
QQs   H**
I4IIoverride_compilerr  T.Optional[T.List[str]]c                  ddl m}m} ddlm} i }t	          | ||          \  }}	||g}|                     |          }
| j        |         }|D ]}t          |t                    r|g}t          j
                            |d                   }t          d |D                       r4dt          j        v r"dhd} |t          j
                            t          j        d         dd                     |t          j
                            t          j        d         dd                     |t          j
                            t          j        d         dd                     |t          j
                            t          j        d         dd                    g} |t          j        d                    }||v rt#          j        d|           d}n,d|v rd}n%d|v rd}nd|v rd}nd|v rd}n|dv rd}n	|dv rd}nd}||gz   }	 t'          |d          \  }}}n*# t(          $ r}||t+          |          <   Y d}~d}~ww xY wd|v r|}|                    d d          d         }t/          |          }d}d!|v s|                    d"          rd#}d$|v rd%|v rd%}d&|v rd}|rt3          ||          }|sd'|t+          |          <   |d%k    r$t5          |          }|d(k    r|j        n|j        }n#t;          |          }|d(k    r|j        n|j        }tA          | ||||          } ||	||||
||||)	  	        c S d*|v r|d(k    r|j!        n|j"        }| j#        $                    |j%        |||            tM          j'        d+,          5 }||j(        dz   |j)        gz   }tU          |          \  }}}ddd           n# 1 swxY w Y   |+                    |||j(        g t/          |          -          } ||	||||
|||.          c S d/|v rtY          j-        d0|          } | 
J d1            d2                    d3 | .                                D                       }|d(k    r|j/        }n|d4k    r|j0        }tA          | ||||          } ||	||||
||5          c S d6|v rtY          j-        d7|          } | d8|t+          |          <   | 1                    d          }!t/          |!          }|!}|d(k    r|j2        n|j3        }|4                    ||-          }| j#        $                    |j%        |||             ||	||||
|||9          c S d:|v rd}	 tU          ||gz             \  }}}n-# t(          $ r }||t+          ||gz             <   Y d}~nd}~ww xY wt/          |          }tY          j-        d;|tX          j5                  }"|"r|"1                    d          }#nd<}#|d(k    r|j6        n|j7        }tq          | d=g|||          } |||||
||#|5          c S |j9        |j:        |j;        f|j<        |j=        |j>        f|j?        |j@        |jA        f|j?        |j@        |jA        fd>}$|$B                                D ]n\  }%}&|%|v re|d(k    r|&d         n|&d         }|&d         }'| j#        $                    |j%        |||             |'|||-          } ||	||||
|||9          c c S od?|v sd@|v rd}t          ||          }dA|v r|d(k    r|jD        n|jE        }n|d(k    r|jF        n|jG        }dB|v s| j        |         H                                r'	 tq          | ||||dCD          }n# t          $ r Y nw xY w|tA          | ||||          } ||	||||
||||)	  	        c S dE|v ryt/          |          }dF|v rdGndH}#|d(k    r|jJ        n|jK        }| j#        $                    |j%        |||            |L                    |g |-          } |||||
||#|5          c S dI|v ryt/          |          }dF|v rdGndH}#|d(k    r|jM        n|jN        }| j#        $                    |j%        |||            |L                    |g |-          } |||||
||#|5          c S dJ|v sdJ|v r||fD ]}(t/          |(          }|dKk    r nt          dL|          |(                    d dM          d         })tY          j-        dN|)          }"|"r|"1                    d          }#ndO|) }*t          |*          |d(k    r|jP        n|jQ        }tq          | dPg|||          }dQ|	vrg }	 ||	||||
||#|)|9	  	        c S dR|v ri|d(k    r|jR        n|jS        }| j#        $                    |j%        |||            |T                    |||j(        g |-          } ||	||||
||5          c S dS|v ri|d(k    r|jU        n|jV        }| j#        $                    |j%        |||            |W                    |||j(        g |-          } ||	||||
||5          c S dT|v r<|d(k    r|jX        n|jY        }tA          | ||||          }+ ||	||||
|||+9          c S dU|v r<|d(k    r|jZ        n|j[        }tA          | ||||          }+ ||	||||
|||+9          c S dV|v rjdW|v sfdX|v sb|d(k    r|j\        n|j]        }| j#        $                    |j%        |||            |^                    ||-          } ||	||||
|||9          c S dY|v rb|d(k    r|j_        n|j`        }| j#        $                    |j%        |||            |a                    ||-          } ||	||||
|||9          c S d&|v rU|jb        }| j#        $                    |j%        |||            |c                    ||-          } ||	||||
|||9          c S dZ|v rU|jd        }| j#        $                    |j%        |||            |e                    ||-          } ||	||||
|||9          c S d[|v sd\|v rtdV|v r|d(k    r|jf        n|jg        }|jh        }'n|d(k    r|ji        n|jj        }|jk        }'tY          j-        d]|          },|,
J d1            d2                    d^ |,.                                D                       }-| j#        $                    |j%        |||            | l                    ||j%        d_z             }.|.xtU          |.dgz             \  }}/}tY          j-        d]|/          }0|0
J d1            d2                    d` |0.                                D                       }1 |'|.||1-          }nt          da|jm        db           ||	||-||
|||9          c S dc|v r|jn        }|jo        }'tY          j-        dd|          }2|2
J d1            d2                    de |2.                                D                       }3| j#        $                    |j%        |||            | l                    ||j%        d_z             }.|.t          |j%         df           |'|.||3-          } ||	||3||
|||9          c S t          ||           t          dg|           )izShared implementation for finding the C or C++ compiler to use.

    the override_compiler option is provided to allow compilers which use
    the compiler (GCC or Clang usually) as their shared linker, to find
    the linker they need.
    r   )r#   r'   r   r   Nr   c              3  X   K   | ]%}t           j                            |          d v V  &dS )>   clang-cl.exer   cl.exer!   Nr   r   s     rw   r   z,_detect_c_or_cpp_compiler.<locals>.<genexpr>  s9      eeWXrw""&RReeeeeery   WATCOMr   T.Optional[str]ra   c                    | r<t           j                            t           j                            |                     nd S r~   )r   r   normcaseabspath)r   s    rw   sanitizez+_detect_c_or_cpp_compiler.<locals>.sanitize(  s0    CDN27++BGOOA,>,>???$Nry   BINNTr   r  BINNT64z%Skipping unsupported cl.exe clone at:r   armccz--vsnccrx-vxc16r   ccomp-version>   cl6x.exe	armcl.exe	cl430.exe
cl2000.execl6xarmclcl430cl2000>   icl.exer   r   Detecting compiler viar   
Free Software Foundationzxt-r   r4   r5   zMicrochip Technologyno pre-processor definesr#   )definesfull_versionr   
Emscriptenz.cr   r   r   r#  Arm C/C++/Fortran Compiler4version (\d+)\.(\d+)\.?(\d+)? \(build number (\d+)\)for mypyr   c                    g | ]}||S r~   r   r   s     rw   r   z-_detect_c_or_cpp_compiler.<locals>.<listcomp>  s    SSSaQ]]]]ry   r'   r   armclangz.*Component.*zversion string not foundr#  r   zCL.EXE COMPATIBILITYz^Target: (.*?)-zunknown targetzlld-link)zTMS320C2000 C/C++zTMS320C6x C/C++zTI ARM C/C++ CompilerzMSP430 C/C++r    ClangApplewindowsFinvoked_directlyzIntel(R) C++ Intel(R)IA-32x86x86_64z3Intel(R) oneAPI DPC++/C++ Compiler for applications	Microsoftunknown versionz3Failed to detect MSVC compiler version: stderr was
maxsplitz&.*(x86|x64|ARM|ARM64)([^_A-Za-z0-9]|$)zFFailed to detect MSVC compiler target architecture: 'cl /?' output is
linksccachePGI CompilersNVIDIA Compilers and Toolsz(ICC)zIntel(R) oneAPIr   r   r   z	RX FamilyCompCertzMetrowerks C/C++zFreescale C/C++z)Version (\d+)\.(\d+)\.?(\d+)? build (\d+)c              3     K   | ]}||V  	d S r~   r   r   s     rw   r   z,_detect_c_or_cpp_compiler.<locals>.<genexpr>P  s"      '\'\aammmmm'\'\ry   _ldc              3     K   | ]}||V  	d S r~   r   r   s     rw   r   z,_detect_c_or_cpp_compiler.<locals>.<genexpr>Z  s(      )^)^PQP]!P]P]P]P])^)^ry   zFailed to detect linker for z, compiler. Please update your cross file(s).r   z+v([0-9]+)\.([0-9]+)r([0-9]+) Build ([0-9]+)c              3     K   | ]}||V  	d S r~   r   r   s     rw   r   z,_detect_c_or_cpp_compiler.<locals>.<genexpr>i  s(      &^&^QPQP]qP]P]P]P]&^&^ry   z/_ld was not properly defined in your cross filezUnknown compiler )r   r  ra   r  )qr   r#   r'   r   r   is_cross_buildr   r   r_   r   r   r   r   environjoinshutilwhichr   debugr   r   r   r   r	   r   _get_gnu_compiler_defines_get_lcc_version_from_definesElbrusCCompilerElbrusCPPCompiler_get_gnu_version_from_definesGnuCCompilerGnuCPPCompilerr   EmscriptenCCompilerEmscriptenCPPCompilerr   add_lang_argsr   tempfileNamedTemporaryFileLINKER_PREFIXnamer   WASMDynamicLinkerresearchgroupsArmLtdClangCCompilerArmLtdClangCPPCompilergroupArmclangCCompilerArmclangCPPCompilerArmClangDynamicLinker	MULTILINEClangClCCompilerClangClCPPCompilerr   C2000CCompilerC2000CPPCompilerC2000DynamicLinkerC6000CCompilerC6000CPPCompilerC6000DynamicLinkerTICCompilerTICPPCompilerTIDynamicLinkerr   _get_clang_compiler_definesAppleClangCCompilerAppleClangCPPCompilerClangCCompilerClangCPPCompilerr
   r   IntelClCCompilerIntelClCPPCompilerXilinkDynamicLinkerIntelLLVMClCCompilerIntelLLVMClCPPCompilerr   VisualStudioCCompilerVisualStudioCPPCompilerPGICCompilerPGICPPCompilerPGIDynamicLinkerNvidiaHPC_CCompilerNvidiaHPC_CPPCompilerNvidiaHPC_DynamicLinkerIntelCCompilerIntelCPPCompilerIntelLLVMCCompilerIntelLLVMCPPCompilerArmCCompilerArmCPPCompilerArmDynamicLinkerCcrxCCompilerCcrxCPPCompilerCcrxDynamicLinkerXc16CCompilerXc16DynamicLinkerCompCertCCompilerCompCertDynamicLinkerMetrowerksCCompilerARMMetrowerksCPPCompilerARMMetrowerksLinkerARM"MetrowerksCCompilerEmbeddedPowerPC$MetrowerksCPPCompilerEmbeddedPowerPCMetrowerksLinkerEmbeddedPowerPCr   r   TaskingCCompilerTaskingLinkerr   )4r\   r^   r`   r  r#   r'   r   r   r   r   is_crossinfor   compiler_namer  
watcom_clsfound_clr   cmdr   r   r   r   r#  r   guess_gcc_or_lccr"  clsr   f_oarm_ver_matcharm_ver_strmatchtargetti_compilers
identifiercompiler_classeslnklookatcl_signaturemr   mwcc_ver_matchcompiler_versionldo_ldmwld_ver_matchlinker_versiontasking_ver_matchtasking_versions4                                                       rw   _detect_c_or_cpp_compilerr    s    !!!!!!=?&sD+>>Iv$&'	!!+..H<$D  [: [:h$$ 	" zH((!55ee\deeeee &	 2:%%O O O O 'hrw||BJx4H'SW'X'XYY&hrw||BJx4H'S['\'\]]&hrw||BJx4H)UY'Z'Z[[&hrw||BJx4H)U]'^'^__a
 $8FL$6$677z))JFQQQCC%%CC}$$CC}$$CC%%CCvvvCC000CCC#	+C5MNNNKAsCC 	 	 	/0Ys^^,HHHH	 ]""Cyyq))!, %%,0%,,u0E0E,$C<<ESLL$!S((# 	/$??G 8R 8!4!455((7@@+/3;;a''C<Q7@@(,ann9K%c8S';OOF3';gL     
 3+/3;;!''C<UCL&&s|S+sKKK
 ,D999 *Q#"3k"A16!JJ$S//1a* * * * * * * * * * * * * * * ..+s'8N1-- / / /F 3';$L: : : : : : (3..I&]_bccM ,,j,,,hhSS=+?+?+A+ASSSTTGs{{,0%c8S';OOF3';$       Ios;;M$8R 8!4!45'--a00K$[11G&L)-!%%#:QC22;2PPFL&&s|S+sKKK3';$)&: : : : : : "S(( CB(SE)9::3 B B B@A 8se+;!<!<======B$S))GI/blCCE *Q)(,!$$9OC%cJ<g{SSF3';$      "#!133GIc d /1EwGab%&]C4EwG^$_M3+<g>UV	
 
 -9,>,>,@,@ 	> 	>(J(S  -1S[[&q))>Nq>Q&q)**3<k3OOOX{GDDDsHg{Hd!-f> > > > > > > > ! c>>W^^F1(DAAG #~~/3s{{a++@Y*.#++a&&3;OC3<#<#G#G#I#I-c8S';inoooFF%   D~)#xg{SS3';$l6K K K K K K #c))$S))G%nnUU(F(,!$$9OCL&&s|S+sKKK00b'0RRF3';$      ACGG$S))G%nnUU(F,0CKK!((S=WCL&&s|S+sKKK00b'0RRF3';$      #!3!3
 * k k(00///E 0 ++ibe+i+ijjj!<<q<99!<LIGVVE .Qn`lnn*1----1S[[!))c>YC%cF8S';OOF&&3';$)&: : : : : : c!!$(CKK!..S5GCL&&s|S+sKKK--hSEVXZdk-llF3';V% % % % % % (3..+/3;;!''C<UCL&&s|S+sKKK44X{CL]_akr4ssF3';V% % % % % % c>>&*ckk!""s7KC hWkJJA3';$)!5 5 5 5 5 5 ##*.#++!&&3;SC hWkJJA3';$)!5 5 5 5 5 5 C<<!4!4s8J8J$(CKK!..S5GCL&&s|S+sKKK--k7-KKF3';<@ @ @ @ @ @ #%)S[[!//c6ICL&&s|S+sKKK..{G.LLF3';$)&: : : : : : "S((/CL&&s|S+sKKK..{G.LLF3';$)&: : : : : : %CL&&s|S+sKKK22;2PPF3';$)&: : : : : : $$(9S(@(@||26#++a..3C_1>Bckka::sOw=Y'SUXYYN!--z---"xx'\'\>3H3H3J3J'\'\'\\\L&&s|S+sKKK((clU6JKKB~'k](:;;
4!#+WY]!^!^%11:111!$)^)^^5J5J5L5L)^)^)^!^!^RnEEE*  ,A#&  ,A  ,A  ,A  B  B  B3"2K4)&: : : : : :  3&&$C'C "	*XZ] ^ ^$00*000!hh&^&^2C2J2J2L2L&^&^&^^^OL&&s|S+sKKK((clU6JKKBz$%e%e%efffS[/BBBF3/;$)&: : : : : : '$ '333
>9>>
?
??sT   H%%
I/II(OO	O	0V
V2V--V27^
^^c                $    t          | d|          S )Nr#   r  r\   r`   s     rw   rf   rf   x  s    $S#{;;;ry   c                $    t          | d|          S )Nr'   r  r  s     rw   rg   rg   {  s    $S%===ry   c                   ddl m}m} ddlm} ddlm} i }|                     |          }t          | d|          \  }}	| j	        |         }
|D ]Y}d}	 t          ||gz   d	          \  }}}n-# t          $ r }||t          ||gz             <   Y d }~Ed }~ww xY w|                                                    d
d          d         }t          | |          }|}| j                            |j        |||             |d|          }|| j        v rY| j        |         }t'          |t(                    sJ | j                            ||                    ||j                  i            ||||j        g |                                          } ||	||||||
|          c S t5          dd                    d |D                        d          )Nr   )CudaCompilerPhaser   )	OptionKey)
CudaLinkerrE   r   r  r   Vr9  cuda_link_args)r   r&  )host_compilerr  r   z(Could not find suitable CUDA compiler: "z; c                8    g | ]}d                      |          S ) )rF  )r   r#   s     rw   r   z(detect_cuda_compiler.<locals>.<listcomp>  s)    TtTtTtefUXU]U]^_U`U`TtTtTtry   r   )rE   r  r  optionsr  linkers.linkersr  rD  r   r   r   r   r   rQ   rsplitrg   r   rS  r   r   listset_optionsto_host_flags_baseLINKERrV  parse_versionr   rF  )r\   r`   r  r  r  r  r   r  r   r   r  r   r   r   r   r   r   r   cpp_compilerr  keyvalr   s                          rw   ri   ri   ~  sN   ))))))))######,,,,,,!!+..H&sFK@@Iv<$D !{ !{	+Hu,<BZ[[[KAsCC 	 	 	<=Yx3%'7889HHHH	$ ))++$$S1$55b9*3<<""3<k3GGGi(+>>>#++c"Cc4(((((L$$c3+A+A#u|+T+T%UVVVHk<3Mr[e[s[s[u[uvvvs68Wk8S_fjsyzzzzzz
x$))TtTtjsTtTtTtJuJuxxx
y
yys   A//
B9BBc                    ddl m} ddlm} i }t           d          \  }}                               } j                 }|D ]	 t          dgz   d          \  }	}
}	n/# t          $ r"}||t          dgz             <   d	}
Y d }~nd }~ww xY wd
D ]}	 t          |gz   d          \  }}n-# t          $ r }||t          |gz             <   Y d }~Cd }~ww xY wt                    
                    dd          d         }d }dv rd}dv rdv rd}|rt          d          }|sd|t                    <   |dk    r@t          |          |j        }t           |          } ||||||          c c S t          |          |j        }t           |          } ||||||          c c S dv r|j        }t%          j        d          }|
J d            d                    d |                                D                       t           |          } ||||          c c S dv r0|j        }t           |          } |||||          c c S d|v r?t          |          |j        }t           |          } |||||          c c S d|v rnt          |          d|v rdnd}|j        } j                            |j        |            |                    g           } |||||          c c S d |v sd!|v rnt          |          d|v rdnd}|j        } j                            |j        |            |                    g           } |||||          c c S d"v r0|j        }t           |          } |||||          c c S d#v sd$v r0|j        }t           |          } |||||          c c S d%|v r|                     |||&          c c S d'v r^|j!        } j                            |j        |            |"                    |j#        g           } |||||          c c S d(v r^|j$        } j                            |j        |            |"                    |j#        g           } |||||          c c S d6 fd-}d.v sd/|
v r(|j%        } ||          } |||||          c c S d0v sd1v r(|j&        } ||          } |||||          c c S d2|v r0|j'        }t           |          } |||||          c c S d3|v r|
                    dd          d         }|
                                d4         |j(        } j                            |j        |            |)                    |j#        g           } |||||          c c S tU          ||           tW          d5          )7Nr   )r.   r   r   r.   z--helpr  r   r   )r   -Vr  r   zGNU Fortranr   r4   r5   r!  r.  r(  r)  r*  r   c                    g | ]}||S r~   r   r   s     rw   r   z+detect_fortran_compiler.<locals>.<listcomp>  s    #W#W#W!Ary   r,  G95zSun Fortranz*Intel(R) Fortran Compiler for applicationsr4  r5  r6  r&  zIntel(R) Visual FortranzIntel(R) Fortranzifort (IFORT)zifx (IFORT)z	ifx (IFX)zPathScale EKOPath(tm))r#  r=  r>  r  T.Type['Compiler']ra   T.Optional['DynamicLinker']c                    d }dv sj                                                  r'	 t          | d          }n# t          $ r Y nw xY w|t	          |           }|S )Nr1  Fr2  )r   r
   r   r   r   )r  r   r   r\   r`   r   r   s     rw   _get_linker_try_windowsz8detect_fortran_compiler.<locals>._get_linker_try_windows/  s    ##s|K'@'K'K'M'M#!13'%" " " *   >-c8S.5{D DFs   > 
A
Ar*   zflang LLVM compilerr+   r    zOpen64 Compiler SuitezNAG Fortranr  r   )r  r  ra   r  ),r   r.   r   r   rD  r   r   r   r   r	   r   rJ  rK  ElbrusFortranCompilerr   rN  GnuFortranCompilerArmLtdFlangFortranCompilerrY  rZ  rF  r[  G95FortranCompilerSunFortranCompilerIntelLLVMClFortranCompilerr   rS  r   ru  IntelClFortranCompilerIntelFortranCompilerIntelLLVMFortranCompilerPathScaleFortranCompilerPGIFortranCompilerr|  rV  NvidiaHPC_FortranCompilerLlvmFlangFortranCompilerClassicFlangFortranCompilerOpen64FortranCompilerNAGFortranCompilerNAGDynamicLinkerr   r   )r\   r`   r.   r   r   r   r   r  r  r  help_outr   r   r   r   r#  r  r"  r  r   r  r  r  r   r   r   s   ``                     @@@rw   rp   rp     s
   !!!!!!=?&sI{CCIv!!+..H<$D o> o>	.x8*/DJbcccNAx 	 	 	ABYx8*'<==>HHHHHH	 ' g	> g	>C/C50@F^___3   @A 8se+;!<!<= %S))G99T1--a0L04###( ||#(  K3HiHH <V$Yx%8%89#u,,;GDDG!7C-c8S';WWF3 ';$l6K K K K K K K K <GDDG!4C-c8S';WWF3 ';$l6K K K K K K K K ,s228 "	*acf g g$00*000((#W#W}/C/C/E/E#W#W#WXX)#xg{SSsg{Hd!# # # # # # # # ||0)#xg{SSsg{Hd!-f> > > > > > > > ##(--0)#xg{SSsg{Hd!-f> > > > > > > > <sBB(--")S..h8**3<k3OOO 44["g4VVsg{Hd6+ + + + + + + + )C//3E3L3L(--")S..h4**3<k3OOO 44["g4VVsg{Hd6+ + + + + + + + #%%2)#xg{SSsg{Hd!-f> > > > > > > > ##{c'9'96)#xg{SSsg{Hd!-f> > > > > > > > '#--77g{Hd!- 8 / / / / / / / #%%0**3<k3OOO 11(K252CRQX 2 Z Zsg{Hd!-f> > > > > > > > ,s227**3<k3OOO 11(K252CRQX 2 Z Zsg{Hd!-f> > > > > > > >         $ c!!%:h%F%F60055sg{Hd!-f> > > > > > > > #~~C90055sg{Hd!-f> > > > > > > > '#--3)#*2C+O Osg{Hd!-f> > > > > > > > ##"yyq11!4&,,..r20**3<k3OOO 11k3+<b# 2 % % sg{Hd!-f> > > > > > > > ${g	>R '333
P
Q
QQs0   A**
B4BBB99
C#CC#
'Compiler'c                $    t          | d|          S )Nr/   _detect_objc_or_objcpp_compilerr  s     rw   rh   rh   f  s    *3DDDry   c                $    t          | d|          S )Nr0   r  r  s     rw   rj   rj   i  s    *3+FFFry   c                v   ddl m}m} i }t          | ||          \  }}|                     |          }| j        |         }	|D ]}
dg}	 t          |
|z   d          \  }}}n,# t          $ r}||t          |
|z             <   Y d }~Dd }~ww xY wt          |          }d|v rt          |
|          }|sd|t          |
          <   t          |          }|dk    r|j        n|j        }t          | |
|||          } |||
||||	||	          }|                    d
|           d         sd|dk    rdnd |t          |
          <   |c S d|v rd }t!          |
|          }|sd|t          |
          <   8d|v r|dk    r|j        n|j        }n|dk    r|j        n|j        }d|v s| j        |                                         r%	 t-          | |
|||          }n# t.          $ r Y nw xY w|st          | |
|||          } |||
||||	||          c S t1          ||           t3          d          )Nr   )r/   r0   r   r  r   r   r!  r/   r,  zint main(void) { return 0; }r   z#GCC was not built with support for zobjective-czobjective-c++r    r0  r1  )r   r"  r   )r   r/   r0   r   rD  r   r   r   r   r	   rJ  rN  GnuObjCCompilerGnuObjCPPCompilerr   compilesrn  AppleClangObjCCompilerAppleClangObjCPPCompilerClangObjCCompilerClangObjCPPCompilerr
   r   r   r   r   )r\   r^   r`   r/   r0   r   r   r   r  r  r   r   r   r   r   r   r   r"  r   r   r#   s                        rw   r  r  l  s9   =?&sD+>>Iv!!+..H<$D  ,@ ,@m	+HsN@XYYYKAsCC 	 	 	:;Yx#~667HHHH	 !%%%,,/$??G 8R 8!4!453G<<G+/6>>4''v?WD%c8T7KPPF';$( ( (A ::<cBB1E  9Uosw}o}o}^k^k  DS  9U  9U 8!4!45HHHc>>F1(DAAG 8R 8!4!45#~~6:fnnt22&Ji15t--VE_C3<#<#G#G#I#I-c8T7KXXFF%   D  U)#xwTT4';$vw@ @ @ @ @ @' , '333
P
Q
QQs*   
A##
B-BBG  
G-,G-c                   ddl m} |                     |d          }| j        |         }|t          d         d         g}	 t          |dgz   d          \  }}}n=# t          $ r0 t          d                    t          |                              w xY wd	|v sd	|v rt          d	|v r|n|          }|r|d
k    r5d	|v r|n|                                }	t          |	          dk    r|	d         }|}
| j                            |
j        |
||             |
||||          S t          dt          |          z             )Nr   )JavaCompilerrC   r   r  r  r   z#Could not execute Java compiler: {}rB   r8  Unknown compiler: )rC   r  r   r   r   r   r   r   formatr   r	   r   lenr   rS  r   )r\   r`   r  exelistr  r   r   r   r   parts
comp_classs              rw   rk   rk     s   """"""%%k6::G<$DF#A&'e':,(>D\]]]3 e e e"#H#O#OPYZaPbPb#c#cddde#~~C 3C@@ 	#'%666#sNNSS::<<E5zzA~~(!
"":#6
KQTUUUz'7K>>>
3i6H6HH
I
IIs   A :Bc                   ddl m} t          | d|          \  }}i }| j        |         }|D ]}	 t	          |dgz   d          \  }}	}
n-# t
          $ r }||t          |dgz             <   Y d }~Bd }~ww xY wt          |	          }d|	v r|j        }nd|	v r|j	        }nr| j
                            |j        |||             |||||          c S t          ||           t          d	          )
Nr   )r3   r3   r   r  r   Monoz	Visual C#r   )r   r3   r   r   r   r   r   r	   MonoCompilerVisualStudioCsCompilerr   rS  r   r   r   )r\   r`   r3   r   r   r   r  r   r   r   r   r   r   r  s                 rw   rl   rl     sI   &sD+>>Iv<$D 5 5	+DK=,@F^___KAsCC 	 	 	@AYt{m';<<=HHHH	 !%%S==/CCC+CC""3<k3GGGs4+t44444'333
P
Q
QQs   A		
A3A..A3c           	     .   ddl m} t          | dt          j                  \  }}|                     |          }| j        |         }i }|D ]}	 t          |dgz   d          \  }}	}
n-# t          $ r }||t          |dgz             <   Y d}~Bd}~ww xY wd}d|	v rt          |	          }nd|
v rt          |
          }|7|}| j                            |j        |||             |g |||||	          c S t          ||           t          d
          )zSearch for a cython compiler.r   )CythonCompilerrL   r  r  r   NCythonr  r   )rL   r  r   r   r   rD  r   r   r   r   r	   r   rS  r   r   r   )r\   r`   r  r   r  r  r  r   r   r   r   r   r   r  s                 rw   rr   rr     su   &&&&&&!#x1DEELIq!!+..H<$D/1 W W	+DD6M?WXXXKAsCC 	 	 	9:Yttf}556HHHH	 $(s??$S))GG__$S))G'JL&&z':JUXYYY:b$dXVVVVVV  '333
P
Q
QQs   A((
B2BBc                F   ddl m} |                     t          j        d          }|                     |          }| j        |         }|t          d         d         g}	 t          |dgz   d          dd         \  }}n=# t          $ r0 t          d	                    t          |                              w xY wt          |          }d
|v r3|}	| j                            |	j        |	||             |	|||||          S t          dt          |          z             )Nr   )ValaCompilerrK   r   r   r  r   r   z#Could not execute Vala compiler: {}Valar  )rK   r  r   r   r   rD  r   r   r   r   r   r  r   r	   r   rS  r   )
r\   r`   r  r  r  r  r   r   r   r  s
             rw   rm   rm     sI   """"""%%m&96BBG!!+..H<$DF#A&'e"7k]#:@XYYYZ[\]Z]^33 e e e"#H#O#OPYZaPbPb#c#cdddeS!!G}}!
"":#6
KQTUUUz'7K4HHH
3i6H6HH
I
IIs     B :B;r   c           
     x	   ddl m} ddlm} i }t          | d|          \  }}|                     |          }| j        |         }t          | |          }	t          |	j        |j	                  }
| 
                    |d          }|D ]}dg}	 t          ||z   d	          d         }n,# t          $ r}||t          ||z             <   Y d }~Fd }~ww xY wt          |          }|                    d
d          d         }|j        }d|v rddg}	 t#          ||z             d         }n,# t          $ r}||t          ||z             <   Y d }~d }~ww xY wt          |          }|                    d
d          d         }|j        }t'          j        d           d|v rt+          d |D                       rt'          j        d           |                                }|i }g }|
rU|                    |                    |	j                                        d                     d|d<   |	j        j        |d<   n|	j        j        |	j                                        z   }t<          j                             |d                   dv r|d= |!                    d          }|                    |                    |d                     |D ]}|                    dd| g           |	j        
J d            |
r5 tE          |	j                  ||f|	j        j        |	j        j#        d|}n1 tE          |	j                  |||	j$        f||	j        j%        |	j        j#        d|}nd|d         v rotM          | ||||d          }t          ||j	                  sJ d|_'        |                    |                    |                                d                     n}tQ          | d||           }	|	j        }|j        d         )                    d!          r|j        d         n|j        d         }|                    |                    |d                     | j*        +                    |j,        |||             ||||||||"          c S t[          ||           t]          d#          )$Nr   )rG   r   r   rG   rust_ldr   r  r   r   r   clippyz--rustczclippy-driver is not intended as a general purpose compiler. You can use "ninja clippy" in order to run clippy on a meson project.rF   c              3  @   K   | ]}|                     d           V  dS )zlinker=N)r   )r   as     rw   r   z'detect_rust_compiler.<locals>.<genexpr>A  s.      ==q1<<	**======ry   zPlease do not put -C linker= in your compiler command, set rust_ld=command in your cross file or use the RUSTC_LD environment variable, otherwise meson will override your selection.r   Tdirectr   >   r   r<  z-Cz	link-arg=r*  )r  r   )always_argssystemr   r;  F)use_linker_prefixr#   r   r   r'  r   )/r   rG   r   r   rD  r   rf   r   r   VisualStudioLikeLinkerMixinr   r   r   r   r	   r   r   r   ClippyRustCompilerr   deprecationr   warningcopyextenduse_linker_argsget_exer   r  get_always_argsr   r   r   poptyper   rV  r  r   r  r  endswithr   rS  r   r   r   )r\   r`   rG   r   r   r   r  r  r  r   is_link_exeoverrider   r   r   r   r#  r   r  
extra_argsr  r  r#   r   r   s                            rw   ro   ro     s   !!!!!!/1!#v{;;LIq!!+..H<$D	3	,	,BRY(KLLK&&{I>>H m: m:m	#HsN8PQQQRSTCC 	 	 	:;Yx#~667HHHH	 &c**$$S!,,Q/$($5 s??
 k*C C003   >? 8c>!:!:; *#..L"((a003G)C!" " "
 c>> ==H===== 545 5 5  }}H>@
+- AOOC$7$7	8I8I8K8KR$P$PQQQ+/Jx(,.I,=Jy)) i/")2K2K2M2MMGw''
337LLL#AJAAOOC$7$72$>$>??? % A A 1(?@@@@
 y,,j,,, V,T")__[+ VryO`57Y5FV VJTV VFF -T")__X{BDT V9DRYM]57Y5FV VJTV VFF 8A;&&)#*2C+afh h h "&'*MNNNNN $ 3 3FNN4D4Db I IJJJJ /sCX`aaa *0):)C)CH)M)MdFN1%%SYSabcSd 3 3Ar : :;;;L&&s|S+sKKK3';$L: : : : : :M T '333
P
Q
QQs0   B))
C3CCD))
E3EEc                   ddl m}m} | j        |         }dt	          | |          i}t          |d         |j                  }|si }ddlm}  ||          }|r|dk    rd}i }	| 	                    |          }
t          | d|          \  }}|D ]}t          j                            |d	                                       d
          rt          d|d	          d          	 t!          |dgz             dd         \  }}n-# t"          $ r }||	t%          |dgz             <   Y d }~d }~ww xY wt'          |          }|                    dd          d         }d|v sd|v rX|j        }t-          j        d          \  }}t          j        |           	 |                                s|                                ret          j                            |          d d	         dz   }|g}|
r|                    d|j         d           t;          | ||||dd|          }n@t          j                            |          d d	         dz   }t=          | |||||g          }t?          |           t?          |           n## t?          |           t?          |           w xY w |||||||||
|	  	        c S d|v r/|j         }t=          | ||||          } |||||||
||          c S d|v sd|v r?|j!        }t-          j        d          \  }}t          j        |           |d k    rd!nd"}	 |                                s|                                rCt          j                            |          d d	         dz   }t;          | ||||d||g#          }nAt          j                            |          d d	         dz   }t=          | ||||||g          }t?          |           t?          |           n## t?          |           t?          |           w xY w ||||||||$          c S t          d%t%          |          z             tE          |	|           t          d&          )'Nr   )r#   rA   r#   r   )detect_cpu_familyr5  
x86_mscoffrA   r  )ldmdgdmdzMeson does not support z as it is only a DMD frontend for another compiler.Please provide a valid value for DC or unset it so that Meson can resolve the compiler by itself.r   r   r  zLLVM D compilerzLLVM Open D compilerz.dobjz	-mtriple=z-windowsTF)r  r3  r   r  r   )r#  r   r  version_outputr?   )r  r#  r   zThe D Language FoundationzDigital Marsr6  z-m64z-m32)r3  r   r.  r  r   )#r   r#   rA   r   rf   r   rx  environmentr"  rD  r   r   r   r   r   r   r   r   r   r	   r   LLVMDCompilerrT  mkstempcloser
   	is_cygwinappendcpur   r   r   GnuDCompilerDmdDCompilerr   )r\   r`   r#   rA   r  
c_compileris_msvcr"  r   r   r  r   r   r  r   r   r   r   r#  r  r  r  objfiler   r   arch_args                             rw   rn   rn     s   <$D (k::;JC!*ABBG 
 0/////Z((D 45==!!+..H&sC==Iv ]N ]N
 7GBK((334DEE 	u&t'"+ t t tu u u	;- 7881=FAss 	 	 	CDYw+'>??@HHHH	 !%%yyq))!, ##'='D'D/C
 #D))DAqHQKKK*??$$ >(8(8 > g..q11#2#6>G"#J J"))*Hdh*H*H*HIII-c.5.1<@DW\9C	E E EFF !g..q11#2#6<G-c.5sL+:;> > >F !### )))) !### ))))3+tT)&!#7 7 7 7 7 7 c\\.C%c7C+NNF3+tT!VM M M M M M )C//>S3H3H.C
 #D))DAqHQKKK "&!1!1vvvH*??$$ 	H(8(8 	H g..q11#2#6>G-c.5sL+?DRSU]Q^` ` `FF !g..q11#2#6<G-c.5sL+:;XH H HF !### )))) !### ))))3+tT)&: : : : : : ##7)G:L:L#LMMM'333
P
Q
QQs2   $D
D-D((D-CJ J#5B,P   P c                x   ddl m} |                     |d          }|                     |          }| j        |         }|t
          d         d         g}	 t          |dgz   d          \  }}}n=# t          $ r0 t          d	                    t          |                              w xY wt          |          }	d	|v r]t          j        d
          5 }
|}t          | |||	||
j        ddg          }d d d            n# 1 swxY w Y    |||	||||          S t          dt          |          z             )Nr   )SwiftCompilerrI   r   r  r  r   z$Could not execute Swift compiler: {}Swiftz.swiftr%  z-oz	/dev/nullr'  r,  r  )rI   r7  r   rD  r   r   r   r   r   r  r   r	   rT  rU  r   rW  )r\   r`   r7  r  r  r  r   r  r   r   r  r  r   s                rw   rq   rq     s   $$$$$$%%k7;;G!!+..H<$DG$Q'(f%g&6<TUUU	1cc f f f"#I#P#PQZ[bQcQc#d#deeefS!!G#~~(999 	NQC%c&-sG[23&$1LN N NF	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N
 sWk8T&J J J 	J 3i6H6HH
I
IIs   A0 0:B* DDDc           
         ddl m}m}m}m} |                     |          }t          | d|d          \  }}t          | |          }	|sddlm	}
  |
d|	i          }n| j
        |         }i }|D ]}|dgk    rt                      rqt          j        |d	                   sWt          j                            t          j        d
         d          }t          j        |d	         |          p|d	         |d	<   	 t%          |dgz   d          d         }n3# t&          $ r&}||d                    |dgz             <   Y d }~d }~ww xY wt)          |          }d|v r=|}| j                            |j        |||             |g |||||	j        |          c S d|v r=|}| j                            |j        |||             |g |||||	j        |          c S d|v sd|v r~d|v r=|}| j                            |j        |||             |g |||||	j        |          c S |}| j                            |j        |||             |g |||||	j        |          c S t3          ||           t5          d          )Nr   )NasmCompilerYasmCompilerMetrowerksAsmCompilerARM$MetrowerksAsmCompilerEmbeddedPowerPCrZ   T)r   r   detect_machine_infor#   r   ProgramFilesNASM)r   r   r  r   r  r  r[   r   r   r   r   )asmr:  r;  r<  r=  rD  r   rf   r)  r?  r   r
   rG  rH  r   r   rF  rE  r   r   r	   r   rS  r   r   r   r   )r\   r`   r:  r;  r<  r=  r  r   r  r   r?  r  r   r   default_pathoutputr   r   r  comp_class_mwasmarmcomp_class_mwasmeppcs                        rw   rs   rs     s?   oooooooooooo!!+..H "#v{PTUUULIq 
3	,	,B )555555""C9--|K(/1 p pF8
V\$q'5J5J7<<
>(BFKKLl47>>>I$q'DG	&t{m';AYZZZ[\]FF 	 	 	?@SXXdk]&:;;<HHHH	 !((V%JL&&z':JUXYYY:b$dBIX`aaaaaav%JL&&z':JUXYYY:b$dBIX`aaaaaaV##{f'<'<&>#**+>+GI\^iknooo**2tWk4QSQZemnnnnnn'K$**+?+HJ^`kmpqqq++Bg{DRTR[fnoooooo (= '333
P
Q
QQs   9D
EE  Ec           	        |                      |          }t          | |          }|sddlm}  |d|i          }n| j        |         }ddlm}m} |j        dk    rdg}|}	d}
nQ|j        d	k    rd
g}|}	d}
n>|j        dk    rdg}|}	d}
n+|j        dk    rdg}|}	d}
nt          d|j         d          i }	 t          ||
gz             d         }t          |          }| j                            |	j        |	||             |	g |||||j        |          S # t           $ r&}||d                    ||
gz             <   Y d }~nd }~ww xY wt%          ||g           t          d          )Nr   r>  r#   r   )MasmCompilerMasmARMCompilerr5  mlr   r6  ml64armarmasm-haarch64armasm64z	Platform z not supported by MASMr  r  r   )rD  rf   r)  r?  r   rB  rH  rI  
cpu_familyr   r   r	   r   rS  r   r   r   rF  r   )r\   r`   r  r   r?  r  rH  rI  r   r  r   r   rD  r   r   s                  rw   rt   rt   G  s   !!+..H	3	,	,B )555555""C9--|K(22222222%v!
	H	$	$x!
	E	!	!z$
	I	%	%|$
"#Vt#V#V#VWWW/15DC5L))!, (("":#6
KQTUUUz"dG[$	T\]]]] 5 5 534$#,//0000005'$000
P
Q
QQs   8A D 
E	#EE	r   c           	        ddl m} dg}|}d}| j        |         }t          | |          }|                     |          }i }		 t          ||gz             d         }
t          |
          }| j                            |j	        |||             |g |||||j
        |          S # t          $ r&}||	d                    ||gz             <   Y d }~nd }~ww xY wt          |	|g           t          d          )	Nr   )TILinearAsmCompilerr  rN  r   r  r  r   )rB  rS  r   rf   rD  r   r	   r   rS  r   r   r   rF  r   r   )r\   r`   rS  r   r  r   r  r   r  r   rD  r   r   s                rw   ru   ru   q  s2   ((((((8D#6J
C<$D	3	,	,B!!+..H/15DC5L))!, (("":#6
KQTUUUz"dG[$	T\]]]] 5 5 534$#,//0000005'$000
P
Q
QQs   A B$ $
C.CCT.List[str]T.Dict[str, str]c                    ddl m} d fd}g d}	 ||         } |d	d
|g|z             }n:# t          t          f$ r& t	          j        d| d            ||          }Y nw xY wi }|                    d          D ]f}|s|                    dd          ^}}	|dk    r$t          |	          dk    rd||	d         <   t          |	          dk    r|	d         ||	d         <   g|S )z3
    Get the list of GCC pre-processor defines
    r   )gnu_lang_mapargsrT  ra   r_   c                    t          j        dt          |                       t          | z   dt          j                  \  }}}|j        dk    rt          d| d| d          |S )NRunning command: r   writestdinr   z:Unable to get gcc pre-processor defines:
Compiler stdout:

-----
Compiler stderr:

-----
r   rI  r   r   
subprocessPIPEr   r   rX  r   rD  errorr   s       rw   _try_obtain_compiler_definesz?_get_gnu_compiler_defines.<locals>._try_obtain_compiler_defines      
8y88999%hoRzWWW65<1& (M<B(M (M<A(M (M (M N N N ry   z-Ez-dMr   z-cpp-xz'pre-processor extraction using -cpp -x  failed, falling back w/o langr  r  r   #definer   r   rX  rT  ra   r_   )
mixins.gnurW  r   KeyErrorr   rI  r   r  )
r   r^   rW  re  baseline_test_argsrD  r"  linerA   rests
   `         rw   rJ  rJ    s_    )(((((      ,++B D! .-vtT.BEW.WXX (+ B B B
aTaaabbb--.@AAB !#GT"" 	' 	' 	::c1%%D	>>t99>>!GDGt99>>#AwGDGNs   - 4A$#A$c                    ddl m} d fd}g d}	 ||         } |d	|g|z             }n:# t          t          f$ r& t	          j        d
| d            ||          }Y nw xY wi }|                    d          D ]f}|s|                    dd          ^}}	|dk    r$t          |	          dk    rd||	d         <   t          |	          dk    r|	d         ||	d         <   g|S )z5
    Get the list of Clang pre-processor defines
    r   )clang_lang_maprX  rT  ra   r_   c                    t          j        dt          |                       t          | z   dt          j                  \  }}}|j        dk    rt          d| d| d          |S )NrZ  r   r[  r   z<Unable to get clang pre-processor defines:
Compiler stdout:
r^  r_  r`  rc  s       rw   re  zA_get_clang_compiler_defines.<locals>._try_obtain_compiler_defines  rf  ry   rg  rh  z"pre-processor extraction using -x ri  r  r  r   rj  r   r   rk  )mixins.clangrr  r   rm  r   rI  r   r  )
r   r^   rr  re  rn  rD  r"  ro  rA   rp  s
   `         rw   rn  rn    s\    -,,,,,      ,++B d#
 .-tTl=O.OPP (+ B B B
\\\\]]]--.@AAB !#GT"" 	' 	' 	::c1%%D	>>t99>>!GDGt99>>#AwGDGNs   , 4A#"A#r"  c                    d}|                      dd          }|                      dd          }|                      dd          }|                    |||f          S )Nr   __GNUC__0__GNUC_MINOR____GNUC_PATCHLEVEL__getrF  )r"  dotmajorminorpatchs        rw   rN  rN    s[    
CKK
C((EKK(#..EKK-s33E88UE5)***ry   c                    d}|                      dd          }|d d         }|dd          }|                      dd          }|                    |||f          S )Nr   __LCC__100r   __LCC_MINOR__rw  rz  )r"  r|  generation_and_major
generationr}  r~  s         rw   rK  rK    sc    
C";;y%88%bqb)J $EKK--E88Z.///ry   )r\   r]   r^   r_   r`   r   ra   rb   )r\   r]   r^   r_   r`   r   rz   r{   r|   r_   ra   rb   )F)
r\   r]   r^   r_   r`   r   r   r{   ra   r   )r   )r   r   r   r   r   r_   ra   r   )r\   r]   r   r   ra   r   )
r\   r]   r^   r_   r`   r   r  r  ra   r   )r\   r]   r`   r   ra   r   )r\   r]   r`   r   ra   r  )r\   r]   r^   r_   r`   r   ra   r  )r\   r]   r`   r   ra   r   )r\   r   r`   r   ra   r   )r   rT  r^   r_   ra   rU  )r"  rU  ra   r_   )J
__future__r   mesonlibr   r   r   r   r	   r
   r   r   r   	envconfigr   r   r   r   r   r   ra  platformrY  rG  rT  r   typingTTYPE_CHECKINGr   r   r#   r   r'   r   r.   r   rG   r   r  r   r   r)  r   r   __annotations__r   lowerrx   r   r   r   r   r  rf   rg   ri   rp   rh   rj   r  rk   rl   rr   rm   ro   rn   rq   rs   rt   ru   rJ  rn  rN  rK  r   ry   rw   <module>r     sL   # " " " " " "                      $ # # # # #       8 8 8 8 8 8 8 8      				   				    ? *######      ((((((""""""========)))))) &( ' ' ' ' :<< $ LKKHSMHHHHUOYYYHY333HV777HXU^HTNNx!!U**555:::#9'[KKKUUU#U+'/mmmHYU^HTN---9 8 9 J 9 	* !5M I  %w	 &0\	! ""*	 !)
	 #,+	 F# J J J J*	 	 	 	  05    0 "	' 	' 	' 	' 	'cR cR cR cRT JN p@ p@ p@ p@ p@ p@d< < < <> > > >*z *z *z *zXzR zR zR zRxE E E EG G G G6R 6R 6R 6RpJ J J J.R R R R4R R R R:J J J J(|R |R |R |R|uR uR uR uRnJ J J J40R 0R 0R 0Rd(R (R (R (RTR R R R.3 3 3 3j. . . .`+ + + +0 0 0 0 0 0ry   