
    <h                   V   % S SK Jr  SSKJrJrJrJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJrJr  S SKrS SKrS SKrS SKrS SKrS SKrS SKr\R6                  (       a,  SS	KJr  SS
KJr  SSK J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'J(r(  SSK)J*r*  0 r+S\,S'   \" 5       (       a+  / SQ\+S'   / SQ\+S'   / SQ\+S'   / SQ\+S'   / SQ\+S'   SS/\+S'   Oh\RZ                  " 5       R]                  5       S:X  a  / S Q\+S'   / S!Q\+S'   S"/\+S'   S#/\+S'   O/ S$Q\+S'   / S%Q\+S'   S"S&/\+S'   S#S'/\+S'   / S(Q\+S'   SS/\+S'   / S)Q\+S*'   S+/\+S,'   S-/\+S.'   S//\+S0'   S1/\+S2'   S3/\+S4'   S5S6/\+S5'   S7S8/\+S9'   S:/\+S:'   S;/\+S<'   S=/\+S>'   S?/\+S@'   SA/\+SB'   SC/\+SD'   SESF/\+SE'   ScSG jr/SdSH jr0 Se   SfSI jjr1 Sg       ShSJ jjr2SiSK jr3SSL.SjSM jjr4SkSN jr5SkSO jr6SkSP jr7SkSQ jr8SlSR jr9SlSS jr:SmST jr;SkSU jr<SkSV jr=SkSW jr>SkSX jr?SnSY jr@SkSZ jrASkS[ jrBSkS\ jrCSkS] jrDSoS^ jrESpS_ jrFSpS` jrGSqSa jrHSqSb jrIg)r    )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yasmc                   0 S[         _S[        _S[        _S[        _S[        _S[
        _S[        _S[        _S	[        _S
[        _S[        _S[        _S[        _S[        _S[        _S[        _nX;   a
  X1   " X5      $ 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)envlangfor_machinelang_maps       |/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/compilers/detect.pycompiler_from_languagert   T   s    SS"S 	$S 	$	S
 	(S 	$S 	 S 	$S 	S 	$S 	*S 	&S 	(S 	$S 	$S  	.!SH$ 04/?8>#+ITI    c                   [        XU5      nUc  U$ UR                  U:X  d   eU R                  R                  XU5        U(       d   UR	                  U R                  5       U 5        XPR                  R                  UR                     U'   U$ N)rt   rq   coredataprocess_compiler_optionssanity_checkget_scratch_dir	compilers)ro   rp   rq   skip_sanity_check
subprojectcomps         rs   detect_compiler_forr   i   s~    !#[9D|{***LL))$jA#--/559LL4++,T2Kru   c                r   U R                  X!5      nUb  [        R                  " U5      u  pVU/nXv4$ U R                  R	                  U5      (       d0  U(       a  [        X[        R                  5      $ [        U< S35      e[        U    Vs/ s H  o/PM     nn[        R                  " 5       nXv4$ s  snf )zw
The list of compilers is detected in the exact same way for
C, C++, ObjC, ObjC++, Fortran, CS so consolidate it here.
z= compiler binary not defined in cross file [binaries] section)lookup_binary_entryr   parse_entrymachinesmatches_build_machine_get_compilersr   BUILDr   r   detect_compiler_cache)	ro   rp   rq   allow_build_machinevaluer   ccacher|   xs	            rs   r   r   x   s     ##K6E"..u5F	  ||11+>>"%c1D1DEE&$1n'opp"*4.1.QS.	1224 2s   B4c                    SU SU 3nU (       a*  US-  nU R                  5        H  u  pEUSU SU S3-  nM     [        U5      e)NzUnknown z(s): z-
The following exception(s) were encountered:z

Running `z` gave "")itemsr   )
exceptionsbinariesbintypeerrmsgr#   es         rs   _handle_exceptionsr      s]     yhZ0FBB$$&DAA3hqc33F '
v
&&ru   c           	     x   SSK Jn  SSKJn  U R                  UR                  S5      nUb  U/nGO[
        S    Vs/ s H  of/PM     nnUR                  S:X  a  [
        S   /U-   nGOSUR                  5       S	:X  a  [
        S
   [
        S   /nGO+UR                  S:X  a  [
        S   /U-   nGOUR                  S:X  a8  [
        S   nUR                  R                  S5      S   n	US    SU	 3/U/U-   nOUR                  S:X  a4  [        5       (       a"  [
        S
   [
        S   UR                  5       /nOUnOUR                  S:X  a  UR                  S:X  a  S//nO[[        5       (       a  UR                  S:X  a  S//nO7[        5       (       a&  UR                  S:X  a  [
        S
   [
        S   /U-   nOUn0 n
U GH1  n[        R                  R                  US   5      n[!        S U 5       5      (       a  SnOUS;   a  SnOSn [#        XL/-   SS9u  pnS U;   a  UR)                  U[+        US!S 5      5      s  $ S"UR-                  5       ;   d  S"UR-                  5       ;   a  UR/                  U[+        US!S 5      5      s  $ S#U;   a  UR1                  U5      s  $ UR2                  S:X  a  S$U;   a  UR5                  U5      s  $ S%U;   d  S&U;   a9  [7        XR8                  5      (       d   eUR;                  XAR<                  5      s  $ S'U;   aF  [7        XR8                  5      (       d   eUR;                  XAR<                  UR?                  5       S(9s  $ S)U;   a?  S*U;   a9  [7        XR8                  5      (       d   eUR;                  XAR<                  5      s  $ URA                  S+5      (       a  S,U;   a  URC                  U5      s  $ URA                  S-5      (       a  S.U;   a  URE                  U5      s  $ S/U;   aE  S0U;   a  URG                  U5      s  $ S1U;   a  URI                  U5      s  $ URK                  U5      s  $ URA                  S25      (       a  URM                  U5      s  $ URO                  5       RA                  S35      (       d$  URO                  5       RA                  S45      (       a,  S5U;   a  URQ                  U5      s  $ URS                  U5      s  $ S6U;   a  URU                  U5      s  $ UR2                  S:X  a  URW                  UR                  U5      s  $ UR2                  S:X  a4  URA                  S75      (       a  URY                  UR                  U5      s  $ UR2                  S:X  a)  URA                  S85      (       a  UR[                  U5      s  $ UR2                  S:X  d  GM  URA                  S95      (       d  GM  URW                  UR                  U5      s  $    []        XS:5        [_        S;5      es  snf ! [$         a  nUU
['        XL/-   5      '    S nAGMt  S nAff = f)<Nr   )rA   r   linkersrN   rP   rE   rW   msvcrS   rU   r   rX   r    rY   .r   -rA   zintel-clr#   xilibpgirZ   c              3  f   #    U  H'  n[         R                  R                  U5      S ;   v   M)     g7f)>   rR   r   lib.exerT   	xilib.exellvm-lib.exeNospathbasename.0r   s     rs   	<genexpr>'detect_static_linker.<locals>.<genexpr>   s(     {tzoprww"&jjtz   /1/?>   ar6xar430armarar2000ar6x.exe	ar430.exe	armar.exe
ar2000.exe?	--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   rq   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   )ro   compilerrA   r   r   trialsldefault_linkersllvm_arsuffixpopen_exceptionslinker_nameargpouterrr   s                    rs   detect_static_linkerr      s   !$$X%9%94@F(0(AB(A13(AB&345GF))+v512H=U4VWF[[E!234FF[[G#45G%%++C03F!!*Qvh/0':_LF#%||"#56AY8Z\d\w\w\yz([[J&8+<+<+Ci[F\\hkkU2fXF\\hkkV312H=U4VWZiiF$Fgg&&vay1{tz{{{CttCC	+FUN@XYKAC $s*22678YX\;]^^ciik!W		%;--fgh	SW6XYY/36**622<<1K!7&&v..$(:c(Ah4444??6==99&#-h4444??6==XE]E]E_?``C<Nc1h4444??6==99>>)$$K)?%%f-->>(##	[(@%%f--+s2;&**622[(**622''//>>.))))&1199;!!,//399;3I3I+3V3V|88@@DDVLL3&..v66<<1##H$8$8&AA<<1!8!8(()=)=vFF<<1!8!8&&v..<<10D!E!E##H$8$8&AAu v ':
P
QQy CV  	:;Yv~67	s   XX
X9X44X9override_compilerc               X   SSK JnJn  SSKJn  0 n[	        XU5      u  pUb  U/nU R                  U5      n
U R                  U   nU GH  n[        U[        5      (       a  U/n[        R                  R                  US   5      n[        S U 5       5      (       Ga7  S[        R                  ;   Ga  SdS	 jnU" [        R                  R                  [        R                  S   S
S5      5      U" [        R                  R                  [        R                  S   S
S5      5      U" [        R                  R                  [        R                  S   SS5      5      U" [        R                  R                  [        R                  S   SS5      5      /nU" [        R                   " S5      5      nUU;   a  ["        R$                  " SU5        GM  SnO8SU;   a  SnO/SU;   a  SnO&SU;   a  SnOSU;   a  SnOUS;   a  SnOUS;   a  SnOSnUU/-   n ['        USS9u  nnnSU;   a  UnUR-                  SS5      S   n[/        U5      nSnSU;   d  UR1                  S5      (       a  S nS!U;   a  S"U;   a  S"nS#U;   a  SnU(       a  [3        X5      nU(       d  S$U[+        U5      '   GMb  US":X  a*  [5        U5      nUS%:X  a  UR6                  OUR8                  nO)[;        U5      nUS%:X  a  UR<                  OUR>                  n[A        XUUU5      nU" XUX*UUUUS&9	s  $ S'U;   a  US%:X  a  URB                  OURD                  nU RG                  URH                  UU5        [J        RL                  " S(S)9 nUURN                  S-   URP                  /-   n[S        U5      u  nnnSSS5        URU                  XURN                  / [/        W5      S*9nU" XUX*UUUS+9s  $ S,U;   a  [V        RX                  " S-U5      n U c   S.5       eS/R                  U R[                  5        V!s/ s H
  n!U!c  M  U!PM     sn!5      nUS%:X  a  UR\                  nOUS0:X  a  UR^                  n[A        XWUU5      nU" XUX*UUS19s  $ S2U;   a  [V        RX                  " S3U5      n U c  S4U[+        U5      '   GM`  U Ra                  S5      n"[/        U"5      nU"nUS%:X  a  URb                  OURd                  nURg                  UUS*9nU RG                  URH                  UU5        U" XUX*UUUS59s  $ S6U;   a  Sn [S        UU/-   5      u  nnn[/        U5      n[V        RX                  " S7U[V        Rh                  5      n#U#(       a  U#Ra                  S5      n$OS8n$US%:X  a  URj                  OURl                  n[o        U S9/UUU5      nU" UUX*UU$US19s  $ URp                  URr                  URt                  4URv                  URx                  URz                  4UR|                  UR~                  UR                  4UR|                  UR~                  UR                  4S:.n%U%R                  5        HT  u  n&n'U&U;   d  M  US%:X  a  U'S   OU'S   nU'S   n(U RG                  URH                  UU5        U(" XUS*9nU" XUX*UUUS59s  s  $    S;U;   d  S<U;   a  Sn[        X5      nS=U;   a  US%:X  a  UR                  OUR                  nOUS%:X  a  UR                  OUR                  nS>U;   d"  U R                  U   R                  5       (       a   [o        XUUUS?S@9nUc  [A        XUUU5      nU" XUX*UUUUS&9	s  $ SAU;   an  [/        U5      nSBU;   a  SCOSDn$US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  U/ US*9nU" UUX*UU$US19s  $ SEU;   an  [/        U5      nSBU;   a  SCOSDn$US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  U/ US*9nU" UUX*UU$US19s  $ SFU;   d  SFU;   a  UU4 H  n)[/        U)5      nUSG:w  d  M    O   [        SHU< 35      eU)R-                  SSSI9S   n*[V        RX                  " SJU*5      n#U#(       a  U#Ra                  S5      n$OSKU* 3n+[        U+5      eUS%:X  a  UR                  OUR                  n[o        U SL/UUU5      nSMU	;  a  / n	U" XUX*UU$U*US59	s  $ SNU;   ac  US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  XURN                  / US*9nU" XUX*UUS19s  $ SOU;   ac  US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  XURN                  / US*9nU" XUX*UUS19s  $ SPU;   a9  US%:X  a  UR                  OUR                  n[A        XUUU5      n,U" XUX*UUU,S59s  $ SQU;   a9  US%:X  a  UR                  OUR                  n[A        XUUU5      n,U" XUX*UUU,S59s  $ SRU;   ad  SSU;   d^  STU;   dX  US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  UUS*9nU" XUX*UUUS59s  $ SUU;   aX  US%:X  a  UR                  OUR                  nU RG                  URH                  UU5        UR                  UUS*9nU" XUX*UUUS59s  $ S#U;   aF  UR                  nU RG                  URH                  UU5        UR                  UUS*9nU" XUX*UUUS59s  $ SVU;   aF  UR                  nU RG                  URH                  UU5        UR                  UUS*9nU" XUX*UUUS59s  $ SWU;   d  SXU;   Gak  SRU;   a+  US%:X  a  UR                  OUR                  nUR                  n(O*US%:X  a  UR                  OUR                  nUR                  n([V        RX                  " SYU5      n-U-c   S.5       eS/R                  SZ U-R[                  5        5       5      n.U RG                  URH                  UU5        U R                  UURH                  S[-   5      n/U/bc  [S        U/S/-   5      u  nn0n[V        RX                  " SYU05      n1U1c   S.5       eS/R                  S\ U1R[                  5        5       5      n2U(" U/UU2S*9nO[        S]UR                  < S^35      eU" XU.X*UUUS59s  $ S_U;   d  GM  UR                  nUR                  n([V        RX                  " S`U5      n3U3c   S.5       eS/R                  Sa U3R[                  5        5       5      n4U RG                  URH                  UU5        U R                  UURH                  S[-   5      n/U/c  [        URH                   Sb35      eU(" U/UU4S*9nU" XU4X*UUUS59s  $    [        Xx5        [        ScU 35      e! [(         a  nUU[+        U5      '    SnAGM  SnAff = f! , (       d  f       G
N= fs  sn!f ! [(         a  nUU[+        UU/-   5      '    SnAG	NZSnAff = f! [         a     GNcf = f)ezShared 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  f   #    U  H'  n[         R                  R                  U5      S ;   v   M)     g7f)>   r   cl.exer!   clang-cl.exeNr   r   s     rs   r   ,_detect_c_or_cpp_compiler.<locals>.<genexpr>  s(     e\dWXrww"&RR\dr   WATCOMc                    U (       a<  [         R                  R                  [         R                  R                  U 5      5      $ S $ rw   )r   r   normcaseabspath)r   s    rs   sanitize+_detect_c_or_cpp_compiler.<locals>.sanitize(  s+    CD277++BGGOOA,>?N$Nru   BINNTr   r   BINNT64z%Skipping unsupported cl.exe clone at:r   armccz--vsnccrx-vxc16r   ccomp-version>   cl6xarmclcl430cl2000cl6x.exe	armcl.exe	cl430.exe
cl2000.exe>   r   icl.exer   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   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  .   #    U  H  oc  M  Uv   M     g 7frw    r   s     rs   r   r   P  s     '\3Ja3J   	_ldc              3  .   #    U  H  oc  M  Uv   M     g 7frw   r5  r   s     rs   r   r   Z  s     )^5L!!5Lr6  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  .   #    U  H  oc  M  Uv   M     g 7frw   r5  r   s     rs   r   r   i  s     &^2LQqq2Lr6  z/_ld was not properly defined in your cross filezUnknown compiler )r   T.Optional[str]returnr:  )pr   r#   r'   r   r   is_cross_buildr   r   strr   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EmscriptenCPPCompiler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   )5ro   rp   rq   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_matchr   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_versions5                                                        rs   _detect_c_or_cpp_compilerr    sw    !=?&s+>I$&'	!!+.H<<$D h$$ zH((!5e\deee 2::%O 'rww||BJJx4H'SW'XY&rww||BJJx4H'S['\]&rww||BJJx4H)UY'Z[&rww||BJJx4H)U]'^_a
 $FLL$67z)JJFQC%C}$C}$C%CvvC00CC#	+C5MNKAsC
 ]"Cyyq)!, %,0%,u0E0E$C<ESL$!S(#/?G8R 8!455(7@+/3;a''C<Q<Q7@(,ann9K9K%cS';OF';gL 
 3+/3;!''C<U<UCcllC=
 ,,D9Q#"3"3k"A166!JJ$S/1a : ..s'8'8N1- / /F ';$L: : (3.II&]_bcM ,8j8,hh=+?+?+AS+AaQ+ASTGs{,,00%cS';OF';$   IIos;M$8R 8!45'--a0K$[1G&L)-!%%#:Q:QC22;2PFcllC=';$)&: : "S( CB(SE)9:3 %S)GII/bllCEQ)(,!$$9O9OC%cJ<g{SF';$  "#!1!133G3GIcIc d //1E1EwGaGab%&]]C4E4EwG^G^$_MM3+<+<g>U>UV	
 -9,>,>,@(J(S -1S[&q)>Nq>Q&q)!!#,,[AXGDg{d!-f> > -A c>W^F1(AG #~/3s{a++@Y@Y*.#+a&&3;O;OC3<<#<#G#G#I#I-cS';inoF ~)#g{S';$l6K K #c)$S)G%nU(F(,!$$9O9OCcllC=00b'0RF';$  ACG$S)G%nU(F,0CK!((S=W=WCcllC=00b'0RF';$  #!3
 *(0// %
 +-abeah+ijj!<<q<9!<LIIGVEQ_`l_mn*1---1S[!))c>Y>YC%cF8S';OF&';$)&: : c!$(CK!..S5G5GCcllC=--hSEVEVXZdk-lF';V% % (3.+/3;!''C<U<UCcllC=44XCL]L]_akr4sF';V% % c>&*ck!""s7K7KC WkJA';$)!5 5 #*.#+!&&3;S;SC WkJA';$)!5 5 C<!4s8J$(CK!..S5G5GCcllC=--k7-KF';<@ @ #%)S[!//c6I6ICcllC=..{G.LF';$)&: : "S(//CcllC=..{G.LF';$)&: : %%CcllC=22;2PF';$)&: : $(9S(@|26#+a..3C_C_11>Bcka::sOwOw==YY'SUXYN!-9z9-"xx'\>3H3H3J'\\cllC=((cllU6JKB~'k](:;
4!#+WY]!^%1=:=1!$)^^5J5J5L)^!^RnE*-I#&&S  ,A  B  B"2K4)&: :  3&$$C''C "		*XZ] ^$0<*<0!hh&^2C2J2J2L&^^OcllC=((cllU6JKBz$~5d%eff[/BF/;$)&: :s
 z
 '3
!29+>
??]	  	/0Ys^,	\ :9  TF  B@A 8se+;!<=Bb & sZ   x33.yy,
*y,
&y18z3
y=yy
y)	1
z;zz
z)(z)c                    [        U SU5      $ )Nr#   r  ro   rq   s     rs   r_   r_   x  s    $S#{;;ru   c                    [        U SU5      $ )Nr'   r  r  s     rs   r`   r`   {  s    $S%==ru   c                v   SSK JnJn  SSKJn  SSKJn  0 nU R                  U5      n[        U SU5      u  pU R                  U   n
U GH  nSn [        X/-   SS	9u  pnUR                  5       R                  S
SS9S   n[        X5      nUnU R!                  UR"                  UU5        U" SUS9nUU R                  ;   a]  U R                  U   n[%        U[&        5      (       d   eU R(                  R+                  UUR-                  UUR.                  5      05        U" XUR0                  / UR3                  5       S9nU" XUXUU
US9s  $    [5        SSR7                  U Vs/ s H  nSR7                  U5      PM     sn5       S35      e! [         a  nUU[        X/-   5      '    S nAGMf  S nAff = fs  snf )Nr   )CudaCompilerPhaser   )	OptionKey)
CudaLinkerrE   r   r  r   Vr-  cuda_link_args)r   r  )host_compilerr  r   z(Could not find suitable CUDA compiler: "z;  r   )rE   r  r  optionsr  linkers.linkersr  r<  r   r   r   r   r   rQ   rsplitr`   rL  r   r   listrx   set_optionsto_host_flags_baseLINKERrO  parse_versionr   r?  )ro   rq   r  r  r  r  r   r  r|   r   r  r   r   r   r   r   r   r   cpp_compilerr  keyvalr   r#   s                           rs   rb   rb   ~  s   )#,!!+.H&sFK@I<<$D	+Hu,<BZ[KAC& ))+$$S1$5b9*3<#,,[9(+>#++++c"Cc4((((LL$$c3+A+A#u||+T%UVH<3M3Mr[e[s[s[uv6WkS_fjsyzzC D !I$))jsTtjsefUXU]U]^_U`jsTtJuIvvwx
yy=  	<=Yx%'789	< Uus   F#F6
F3F..F3c                  ^ ^^^^ SSK Jn  SSKJn  0 n[        T ST5      u  pVT R	                  T5      nT R
                  T   nU GH  m [        TS/-   SS9u  pn	S
 GH  n [        TU/-   SS9u  nmn[        T5      mTR                  SS5      S   nS nST;   a  SnST;   a  ST;   a  SnU(       a  [        TS5      nU(       d  SU[        T5      '   My  US:X  a6  [        U5      mUR                  n[        T TUTT5      nU" TTTXxUUUS9s  s  $ [        U5      mUR                   n[        T TUTT5      nU" TTTXxUUUS9s  s  $ ST;   a  UR"                  n[$        R&                  " ST5      nUc   S5       eSR)                  UR+                  5        Vs/ s H
  nUc  M  UPM     sn5      m[        T TUTT5      nU" TTTXxUS9s  s  $ ST;   a*  UR,                  n[        T TUTT5      nU" TTTXxUUS9s  s  $ SU;   a5  [        U5      mUR.                  n[        T TUTT5      nU" TTTXxUUS9s  s  $ SU;   a^  [        U5      mSU;   a  SOSnUR0                  nT R3                  UR4                  UT5        UR7                  T/ TS9nU" TTTXxUUS9s  s  $ SU;   d  S U;   a^  [        U5      mSU;   a  SOSnUR8                  nT R3                  UR4                  UT5        UR7                  T/ TS9nU" TTTXxUUS9s  s  $ S!T;   a*  UR:                  n[        T TUTT5      nU" TTTXxUUS9s  s  $ S"T;   d  S#T;   a*  UR<                  n[        T TUTT5      nU" TTTXxUUS9s  s  $ S$U;   a  UR?                  TTTXxUS%9s  s  $ S&T;   aU  UR@                  nT R3                  UR4                  UT5        URC                  TTURD                  / TS9nU" TTTXxUUS9s  s  $ S'T;   aU  URF                  nT R3                  UR4                  UT5        URC                  TTURD                  / TS9nU" TTTXxUUS9s  s  $ S1UU UUU4S( jjnS)T;   d  S*U
;   a#  URH                  nU" U5      nU" TTTXxUUS9s  s  $ S+T;   d  S,T;   a#  URJ                  nU" U5      nU" TTTXxUUS9s  s  $ S-U;   a*  URL                  n[        T TUTT5      nU" TTTXxUUS9s  s  $ S.U;   d  GM  UR                  SS5      S   nUR                  5       S/   mURN                  nT R3                  UR4                  UT5        URQ                  TTURD                  / TS9nU" TTTXxUUS9s  s  $    GM     [S        XE5        [U        S05      e! [         a  nX[        TS/-   5      '   S	n
 S nAGNDS nAff = f! [         a  nX[        TU/-   5      '    S nAGMl  S nAff = fs  snf )2Nr   )r.   r   r   r.   z--helpr  r   r   )r   -Vr  r   zGNU Fortranr   r4   r5   r  r"  r  r  r  r   r   G95zSun Fortranz*Intel(R) Fortran Compiler for applicationsr(  r)  r*  r  zIntel(R) Visual FortranzIntel(R) Fortranzifort (IFORT)zifx (IFORT)z	ifx (IFX)zPathScale EKOPath(tm))r  r1  r2  c           	        > S nST;   d"  TR                   T   R                  5       (       a   [        TTU TTSS9nUc  [	        TTU TT5      nU$ ! [         a     N f = f)Nr%  Fr&  )r   r
   r   r   r   )r  r   r   ro   rq   r   r   s     rs   _get_linker_try_windows8detect_fortran_compiler.<locals>._get_linker_try_windows/  sz    #s||K'@'K'K'M'M!13'%" >-c8S.5{DF * s   A 
AAr*   zflang LLVM compilerr+   r    zOpen64 Compiler SuitezNAG Fortranr  r   )r  zT.Type['Compiler']r;  zT.Optional['DynamicLinker'])+r   r.   r   r   r<  r   r   r   r   r	   r   rC  rD  ElbrusFortranCompilerr   rG  GnuFortranCompilerArmLtdFlangFortranCompilerrR  rS  r?  rT  G95FortranCompilerSunFortranCompilerIntelLLVMClFortranCompilerrL  r   rn  IntelClFortranCompilerIntelFortranCompilerIntelLLVMFortranCompilerPathScaleFortranCompilerPGIFortranCompilerru  rO  NvidiaHPC_FortranCompilerLlvmFlangFortranCompilerClassicFlangFortranCompilerOpen64FortranCompilerNAGFortranCompilerNAGDynamicLinkerr   r   )ro   rq   r.   r   r   r|   r   r  r  r  help_outr   r   r   r   r  r  r  r  r   r  r   r  r  r   r   r   s   ``                      @@@rs   ri   ri     s   !=?&sI{CI!!+.H<<$D	.x8*/DJbcNA
 'C/C50@F^_3
 %S)G99T1-a0L04##( |#( 3HiH<V$Yx%89#u,;GDG!77C-c8S';WF ';l6K K <GDG!44C-c8S';WF ';l6K K ,s288 "		*acf g$0<*<0((}/C/C/E#W/E!A/E#WX)#xg{Sg{H!# # |00)#xg{Sg{H!-f> > #(-00)#xg{Sg{H!-f> > <sB(-")S.h88!!#,,[A 44["g4Vg{H6+ + )C/3E3L(-")S.h44!!#,,[A 44["g4Vg{H6+ + #%22)#xg{Sg{H!-f> > #{c'966)#xg{Sg{H!-f> > '#-77g{H!- 8 / / #%00!!#,,[A 11(K252C2CRQX 2 Zg{H!-f> > ,s277!!#,,[A 11(K252C2CRQX 2 Zg{H!-f> > $ c!%:h%F6605g{H!-f> > #~C9905g{H!-f> > '#-33)#*2C+Og{H!-f> > #"yyq1!4&,,.r200!!#,,[A 11k3+<+<b# 2 % g{H!-f> >K ' b '3
P
QQ]  	ABYx8*'<=>H	  @A8se+;!<=J $Xs<   
U<"V'W#W<
V$VV$'
W1W		Wc                    [        U SU5      $ )Nr/   _detect_objc_or_objcpp_compilerr  s     rs   ra   ra   f  s    *3DDru   c                    [        U SU5      $ )Nr0   r  r  s     rs   rc   rc   i  s    *3+FFru   c                0   SSK JnJn  0 n[        XU5      u  pgU R	                  U5      nU R
                  U   n	U GH  n
S/n [        X-   SS9u  pn[        U5      nSU;   a  [        X5      nU(       d  SU[        U
5      '   MJ  [        U5      nUS:X  a  UR                  OUR                  n[        X
UUU5      nU" XzUX(U	UUS	9nUR                  S
U 5      S   (       d  SUS:X  a  SOS 3U[        U
5      '   M  Us  $ SU;   d  M  S n[!        X5      nU(       d  SU[        U
5      '   M  SU;   a  US:X  a  UR"                  OUR$                  nOUS:X  a  UR&                  OUR(                  nSU;   d"  U R
                  U   R+                  5       (       a   [-        X
UUU5      nU(       d  [        X
UUU5      nU" XzUUXUUS9s  $    [1        XV5        [3        S5      e! [         a  nX[        X-   5      '    S nAGM  S nAff = f! [.         a     Nnf = f)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    r$  r%  )r   r  r   )r   r/   r0   r   r<  r   r   r   r   r	   rC  rG  GnuObjCCompilerGnuObjCPPCompilerr   compilesrg  AppleClangObjCCompilerAppleClangObjCPPCompilerClangObjCCompilerClangObjCPPCompilerr
   r   r   r   r   )ro   rp   rq   r/   r0   r   r|   r   r  r  r   r   r   r   r   r   r   r  r   r   r#   s                        rs   r  r  l  sM   =?&s+>I!!+.H<<$D m	+HN@XYKAC !%%,/?G8R 8!453G<G+/6>4''v?W?WD%cT7KPF';$(A ::<cB1E:]osw}o}^k  DS  ^T  9U 8!45Hc>F1(AG8R 8!45#~6:fnt22&JiJi15t--VE_E_C3<<#<#G#G#I#I-cT7KXF )#wT';vw@ @U Z '3
P
QQU  	:;Yx~67	B & s*   G H 
H*H  H
HHc                "   SSK Jn  U R                  US5      nU R                  U   nUc  [        S   S   /n [        US/-   SS9u  pVnS	U;   d  S	U;   as  [        S	U;   a  UOU5      nU(       a  US
:X  a,  S	U;   a  UOUR                  5       n	[        U	5      S:  a  U	S   nUn
U R                  U
R                  X5        U
" X8X5      $ [        S[        U5      -   5      e! [         a$    [        SR                  [        U5      5      5      ef = f)Nr   )JavaCompilerrC   r   r	  r  r   z#Could not execute Java compiler: {}rB   r,  Unknown compiler: )rC   r  r   r   r   r   r   r   formatr   r	   r   lenrL  r   )ro   rq   r  exelistr  r   r   r   r   parts
comp_classs              rs   rd   rd     s   "%%k6:G<<$DF#A&'e':,(>D\] #~C 3C@'%66#sNS::<E5zA~(!
*--zG'K>>
3i6HH
II  e"#H#O#OPYZaPb#cddes   C   .Dc                   SSK Jn  [        U SU5      u  p40 nU R                  U   nU Hm  n [	        US/-   SS9u  pn
[        U	5      nSU	;   a  UR                  nOSU	;   a  UR                  nOMH  U R                  UR                  X5        U" X|X5      s  $    [        XS5        [        S	5      e! [
         a  nX[        US/-   5      '    S nAM  S nAff = f)
Nr   )r3   r3   r   r  r   Monoz	Visual C#r   )r   r3   r   r   r   r   r   r	   MonoCompilerVisualStudioCsCompilerrL  r   r   r   )ro   rq   r3   r|   r   r   r  r   r   r   r   r   r   r  s                 rs   re   re     s    &sD+>I<<$D	+DK=,@F^_KAC
 !%S=//CC++C#,,94+44! $ '3
P
QQ!  	@AYt{m';<=	s   B00
C:CCc           
        SSK Jn  [        U S[        R                  5      u  p4U R                  U5      nU R                  U   n0 nU Hf  n [        US/-   SS9u  pIn
SnSU	;   a  [        U	5      nOSU
;   a  [        U
5      nUc  M?  UnU R                  UR                  X5        U" / XXUS	9s  $    [        Xs5        [        S
5      e! [         a  nX[        US/-   5      '    SnAM  SnAff = f)zSearch for a cython compiler.r   )CythonCompilerrL   r  r  r   NCythonr  r   )rL   r  r   r   r   r<  r   r   r   r   r	   rL  r   r   r   )ro   rq   r  r|   r  r  r  r   r   r   r   r   r   r  s                 rs   rk   rk     s    &!#x1D1DELI!!+.H<<$D/1	+DD6M?WXKAC
 $(s?$S)G_$S)G'Jj11:Kb$XVV# $ '3
P
QQ!  	9:Yttf}56	s   C
C.C))C.c                   SSK Jn  U R                  [        R                  S5      nU R                  U5      nU R                  U   nUc  [        S   S   /n [        US/-   SS9SS u  pg[        U5      nS
U;   a(  Un	U R                  U	R                  X5        U	" X8XU5      $ [        S[        U5      -   5      e! [         a$    [        S	R                  [        U5      5      5      ef = f)Nr   )ValaCompilerrK   r   r   r  r   r   z#Could not execute Vala compiler: {}Valar  )rK   r  r   r   r   r<  r   r   r   r   r   r  r   r	   rL  r   )
ro   rq   r  r  r  r  r   r   r   r  s
             rs   rf   rf     s    "%%m&9&96BG!!+.H<<$DF#A&'e"7k]#:@XYZ[\]^ S!G}!
*--zG'K4HH
3i6HH
II  e"#H#O#OPYZaPb#cddes   B; ;.C)c                F	   SSK Jn  SSKJn  0 n[        U SU5      u  pVU R	                  U5      nU R
                  U   n[        X5      n	[        U	R                  UR                  5      n
U R                  US5      nU GH  nS/n [        X-   SS	9S   n[        U5      nUR                  S
S5      S   nUR                   nSU;   aW  SS/n [#        X-   5      S   n[        U5      nUR                  S
S5      S   nUR$                  n[&        R(                  " S5        SU;   d  M  [+        S U 5       5      (       a  [&        R,                  " S5        UR/                  5       nUGc  0 n/ nU
(       aX  UR1                  UR3                  U	R                  R5                  5       S5      5        SUS'   U	R                  R6                  US'   OU	R                  R8                  U	R                  R;                  5       -   n[<        R>                  RA                  US   5      S;   a  US	 URC                  S5      nUR1                  UR3                  US5      5        U H  nUR1                  SSU 3/5        M     U	R                  c   S5       eU
(       aJ  [E        U	R                  5      " UU4U	R                  R8                  U	R                  RF                  S.UD6nGO8[E        U	R                  5      " XU	RH                  4UU	R                  RJ                  U	R                  RF                  S.UD6nOSUS   ;   ab  [M        U UUUUSS9n[        UUR                  5      (       d   eSUl'        UR1                  UR3                  UR5                  5       S5      5        Oy[Q        U SXS 9n	U	R                  nUR8                  S   RS                  S!5      (       a  UR8                  S   OUR8                  S   nUR1                  UR3                  US5      5        U RU                  URV                  UU5        U" UUXUUUS"9s  $    [Y        XE5        [[        S#5      e! [         a  nX[        X-   5      '    S nAGM  S nAff = f! [         a  nX[        X-   5      '    S nAGM  S nAff = f)$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  B   #    U  H  oR                  S 5      v   M     g7f)zlinker=N)r   )r   as     rs   r   'detect_rust_compiler.<locals>.<genexpr>A  s     =Hq<<	**Hs   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   r0  z-Cz	link-arg=r  )r  r   )always_argssystemr   r/  F)use_linker_prefixr#   r   r   r  r   ).r   rG   r   r   r<  r   r_   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   rO  r  r   r  r  endswithrL  r   r   r   )ro   rq   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                            rs   rh   rh     sY   !/1!#v{;LI!!+.H<<$D	3	,BRYY(K(KLK&&{I>Hm	#HN8PQRSTC &c*$$S!,Q/$($5$5 s?
 k*C 03 *#.L"((a03G))C!"
 c> =H===45  }}H>@
+-OOC$7$7		8I8I8KR$PQ+/Jx(,.II,=,=Jy) ii//"))2K2K2MMGww''
37LL#AJAAOOC$7$72$>? % 1#(?@ % yy,8j8,!"))_[+ VryyO`O`57YY5F5FVJTVF ""))_XBDTDT V9DRYYM]M]57YY5F5FVJTVF 8A;&)#*2C+afh "&'*M*MNNNN $ 3 3FNN4Db IJ /sCa *0):)C)CH)M)MFNN1%SYSaSabcSd 3 3Ar :;cllC=';$L: :W ^ '3
P
QQY  	:;Yx~67	*  >?8>!:;s0   QQ;
Q8Q33Q8;
R RR c                   SSK JnJn  U R                  U   nS[	        X5      0n[        US   UR                  5      nU(       d  0 nSSKJn  U" U5      nU(       a  US:X  a  Sn0 n	U R                  U5      n
[        U SU5      u  pU GH  n[        R                  R                  US	   5      R                  S
5      (       a  [        SUS	    S35      e [!        US/-   5      SS u  p['        U5      nUR)                  SS5      S   nSU;   d  SU;   Ga  UR*                  n[,        R.                  " S5      u  nn[        R0                  " U5         UR3                  5       (       d  UR5                  5       (       a_  [        R                  R                  U5      S S	 S-   nU/nU
(       a  UR7                  SUR8                   S35        [;        U UUUUSSUS9nO4[        R                  R                  U5      S S	 S-   n[=        U UUUUU/S9n[?        U5        [?        U5        U" UUXUUUXS9	s  $ SU;   a(  UR@                  n[=        XUUU5      nU" UUXUU
UUS9s  $ SU;   d  SU;   a  URB                  n[,        R.                  " S5      u  nn[        R0                  " U5        US :X  a  S!OS"n UR3                  5       (       d  UR5                  5       (       a7  [        R                  R                  U5      S S	 S-   n[;        U UUUUSUU/S#9nO5[        R                  R                  U5      S S	 S-   n[=        U UUUUUU/S9n[?        U5        [?        U5        U" UUXUUUS$9s  $ [        S%[%        U5      -   5      e   [E        X5        [        S&5      e! ["         a  nUU	[%        US/-   5      '    S nAGM6  S nAff = f! [?        U5        [?        W5        f = f! [?        U5        [?        W5        f = f)'Nr   )r#   rA   r#   r   )detect_cpu_familyr)  
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  r'  r  r  r  )r  r   r  version_outputr?   )r  r  r   zThe D Language FoundationzDigital Marsr*  z-m64z-m32)r'  r  r"  r  r   )#r   r#   rA   r   r_   r   rq  environmentr  r<  r   r   r   r   r   r   r   r   r   r	   r   LLVMDCompilerrM  mkstempcloser
   	is_cygwinappendcpur   r   r   GnuDCompilerDmdDCompilerr   )ro   rq   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                             rs   rg   rg     s'   <<$D (:;JC!*A*ABG
 0Z(D45=!!+.H&sC=I
 77GBK(334DEE&)'"+ 7t tu u	;- 781=FA !%yyq)!, #'='D//C
 ##D)DAqHHQK*??$$(8(8 gg..q1#26>G"#J"))IdhhZx*HI-c.5.1<@DW\9C	EF !gg..q1#26<G-c.5sL+:;>F !# )+T)&!7 7 c\..C%cC+NF+T!VM M )C/>S3H..C
 ##D)DAqHHQK "&!1vvH*??$$(8(8 gg..q1#26>G-c.5sL+?DRSU]Q^`F !gg..q1#26<G-c.5sL+:;XHF !# )+T)&: : ##7)G:L#LMM{ ~ '3
P
QQk  	CDYw+'>?@	N !# )H !# )s2   NB=O3BO!
O%N>>OO!O9c                   SSK Jn  U R                  US5      nU R                  U5      nU R                  U   nUc  [
        S   S   /n [        US/-   SS9u  pgn[        U5      n	S	U;   aA  [        R                  " S
S9 n
Un[        U X;XU
R                  SS/S9nS S S 5        W" X9XUWS9$ [        S[        U5      -   5      e! [         a$    [        SR                  [        U5      5      5      ef = f! , (       d  f       N_= f)Nr   )SwiftCompilerrI   r   r  r  r   z$Could not execute Swift compiler: {}Swiftz.swiftr  z-oz	/dev/nullr  r   r  )rI   r-  r   r<  r   r   r   r   r   r  r   r	   rM  rN  r   rP  )ro   rq   r-  r  r  r  r   r  r   r   r  r  r   s                rs   rj   rj     s#   $%%k7;G!!+.H<<$DG$Q'(f%g&6<TU	c S!G#~((9QC%c&-G23&&$1LNF :
 kT&J 	J 3i6HH
II  f"#I#P#PQZ[bQc#deef
 :9s   
C  C5.C25
Dc                   SSK JnJnJnJn  U R                  U5      n[        U SUSS9u  px[        X5      n	U(       d  SSKJ	n
  U
" SU	05      nOU R                  U   n0 nU GH  nUS/:X  a  [        5       (       av  [        R                  " US	   5      (       dX  [        R                  R!                  [        R"                  S
   S5      n[        R                  " US	   US9=(       d    US	   US	'    [%        US/-   SS9S   n[)        U5      nSU;   a6  UnU R+                  UR,                  UU5        U" / UUXU	R.                  US9s  $ SU;   a6  UnU R+                  UR,                  UU5        U" / UUXU	R.                  US9s  $ SU;   d	  SU;   d  GM4  SU;   a6  UnU R+                  UR,                  UU5        U" / UUXU	R.                  US9s  $ UnU R+                  UR,                  UU5        U" / UUXU	R.                  US9s  $    [1        X5        [3        S5      e! [&         a$  nUUSR!                  US/-   5      '    S nAGM  S nAff = f)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   )asmr0  r1  r2  r3  r<  r   r_   r  r5  r   r
   r@  rA  r   r   r?  r>  r   r   r	   rL  r   r   r   r   )ro   rq   r0  r1  r2  r3  r  r|   r  r   r5  r  r   r   default_pathoutputr   r   r  comp_class_mwasmarmcomp_class_mwasmeppcs                        rs   rl   rl     sM   oo!!+.H "#v{PTULI 
3	,B5"C9-||K(/1F8
V\\$q'5J5J77<<

>(BFKLll47>I$q'DG	&t{m';AYZ[\]F
 !(V%Jj11:{Kb$BIIX`aav%Jj11:{Kb$BIIX`aaV#{f'<&>#!!"5">">@SU`a*2tWkQSQZQZemnn'K$!!"6"?"?AUWbc+Bg{RTR[R[fnoo9 < '3
P
QQ1  	?@SXXdk]&:;<	s   3H  
I*I		Ic           
        U R                  U5      n[        X5      nU(       d  SSKJn  U" SU05      nOU R                  U   nSSKJnJn  UR                  S:X  a  S/nUn	Sn
OaUR                  S	:X  a  S
/nUn	Sn
OIUR                  S:X  a  S/nUn	Sn
O1UR                  S:X  a  S/nUn	Sn
O[        SUR                   S35      e0 n [        X/-   5      S   n[        U5      nU R                  U	R                  X5        U	" / XXUR                  US9$ ! [         a   nXSR!                  X/-   5      '    S nAOS nAff = f[#        X/5        [        S5      e)Nr   r4  r#   r   )MasmCompilerMasmARMCompilerr)  mlr   r*  ml64armarmasm-haarch64armasm64z	Platform z not supported by MASMr  r  r   )r<  r_   r  r5  r   r8  r>  r?  
cpu_familyr   r   r	   rL  r   r   r   r?  r   )ro   rq   r  r   r5  r  r>  r?  r   r  r   r   r:  r   r   s                  rs   rm   rm   G  sa   !!+.H	3	,B5"C9-||K(2%v!
	H	$x!
	E	!z$
	I	%|$
"Yt.??U#VWW/15D5L)!, (*--zG"d[		T\]] 534$,/05'0
P
QQs   AD 
D>D99D>c           
        SSK Jn  S/nUnSnU R                  U   n[        X5      nU R	                  U5      n0 n	 [        X5/-   5      S   n
[        U
5      nU R                  UR                  XA5        U" / X;XUR                  US9$ ! [         a   nXSR                  X5/-   5      '    S nAOS nAff = f[        X/5        [        S5      e)	Nr   )TILinearAsmCompilerr
  rD  r   r  r  r   )r8  rI  r   r_   r<  r   r	   rL  r   r   r   r?  r   r   )ro   rq   rI  r   r  r   r  r   r  r   r:  r   r   s                rs   rn   rn   q  s    (8D#6J
C<<$D	3	,B!!+.H/15D5L)!, (*--zG"d[		T\]] 534$,/05'0
P
QQs   AB 
B2B--B2c                  ^  SSK Jn  SU 4S jjn/ SQn X!   nU" SSU/U-   5      n0 nUR                  S	5       HX  nU(       d  M  UR                  S
S5      tpUS:w  a  M'  [        U	5      S:X  a  SXiS   '   [        U	5      S:X  d  MN  U	S   XiS   '   MZ     U$ ! [        [        4 a%    [        R
                  " SU S35        U" U5      n Nf = f)z+
Get the list of GCC pre-processor defines
r   )gnu_lang_mapc                   > [         R                  " S[        U 5       35        [        TU -   S[        R
                  S9u  pnUR                  S:w  a  [        SU SU S35      eU$ )NRunning command: r   writestdinr   z:Unable to get gcc pre-processor defines:
Compiler stdout:

-----
Compiler stderr:

-----
r   rB  r   r   
subprocessPIPEr   r   argsr   r:  errorr   s       rs   _try_obtain_compiler_defines?_get_gnu_compiler_defines.<locals>._try_obtain_compiler_defines  v    

&y&789%hoRzW5<<1& (<<B8 D<<A7)(M N N ru   z-Ez-dMr   z-cpp-xz'pre-processor extraction using -cpp -x  failed, falling back w/o langr  r  r   #definer   r   rW  T.List[str]r;  r=  )
mixins.gnurK  r   KeyErrorr   rB  r   r  )
r   rp   rK  rY  baseline_test_argsr:  r  linerA   rests
   `         rs   rC  rC    s     ) ,B ! .vtT.BEW.WX !#GT"::c1%	>t9>!GGt9>#AwGG # N% !(+ B

<TFB`ab-.@ABs   B 2CCc                  ^  SSK Jn  SU 4S jjn/ SQn X!   nU" SU/U-   5      n0 nUR                  S5       HX  nU(       d  M  UR                  S	S
5      tpUS:w  a  M'  [        U	5      S:X  a  SXiS   '   [        U	5      S
:X  d  MN  U	S   XiS   '   MZ     U$ ! [        [        4 a%    [        R
                  " SU S35        U" U5      n Nf = f)z-
Get the list of Clang pre-processor defines
r   )clang_lang_mapc                   > [         R                  " S[        U 5       35        [        TU -   S[        R
                  S9u  pnUR                  S:w  a  [        SU SU S35      eU$ )NrM  r   rN  r   z<Unable to get clang pre-processor defines:
Compiler stdout:
rQ  rR  rS  rV  s       rs   rY  A_get_clang_compiler_defines.<locals>._try_obtain_compiler_defines  r[  ru   r\  r]  z"pre-processor extraction using -x r^  r  r  r   r_  r   r   r`  )mixins.clangrh  r   rc  r   rB  r   r  )
r   rp   rh  rY  rd  r:  r  re  rA   rf  s
   `         rs   rg  rg    s     - ,B #
 .tTl=O.OP
 !#GT"::c1%	>t9>!GGt9>#AwGG # N !(+ B

7v=[\]-.@ABs   B 2CCc                    SnU R                  SS5      nU R                  SS5      nU R                  SS5      nUR                  X#U45      $ )Nr   __GNUC__0__GNUC_MINOR____GNUC_PATCHLEVEL__getr?  )r  dotmajorminorpatchs        rs   rG  rG    sM    
CKK
C(EKK(#.EKK-s3E88U5)**ru   c                    SnU R                  SS5      nUS S nUSS  nU R                  SS5      nUR                  X4U45      $ )Nr   __LCC__100r   __LCC_MINOR__rn  rq  )r  rs  generation_and_major
generationrt  ru  s         rs   rD  rD    sT    
C";;y%8%bq)J $EKK-E88Z.//ru   )ro   'Environment'rp   r=  rq   r   r;  T.Optional[Compiler])ro   r}  rp   r=  rq   r   r}   boolr~   r=  r;  r~  )F)
ro   r}  rp   r=  rq   r   r   r  r;  z)T.Tuple[T.List[T.List[str]], T.List[str]])r   )r   z'T.Mapping[str, T.Union[Exception, str]]r   zT.List[T.List[str]]r   r=  r;  z
T.NoReturn)ro   r}  r   r   r;  r   )
ro   r}  rp   r=  rq   r   r   zT.Optional[T.List[str]]r;  r   )ro   r}  rq   r   r;  r   )ro   r}  rq   r   r;  
'Compiler')ro   r}  rp   r=  rq   r   r;  r  )ro   r}  rq   r   r;  r   )ro   r   rq   r   r;  r   )r   ra  rp   r=  r;  T.Dict[str, str])r  r  r;  r=  )J
__future__r   mesonlibr   r   r   r   r	   r
   r   r   r   	envconfigr   r   r   r   r   r   rT  platformrR  r@  rM  r   typingTTYPE_CHECKINGr|   r   r#   r   r'   r   r.   r   rG   r   r  r   r   r  r   r   __annotations__r   lowerrt   r   r   r   r   r  r_   r`   rb   ri   ra   rc   r  rd   re   rk   rf   rh   rg   rj   rl   rm   rn   rC  rg  rG  rD  r5  ru   rs   <module>r     s   #   $  8   	   	 ??# ("=) &(
" ' << LHSMHHUOYHY3HV7HXU^HTN!U*5:#9'[KU#U+'/mHYU^HTN-9 8 9 J 9 	* !5M I  %w	 &0\	! ""*	 !)
	 #,+	 F# J*	  05(,9b0 "	';	'%	' 	' '1	'cRT JN p@d<>*zXzRxEG6RpJ.R4R:J(|R|uRnJ40Rd(RTR.3j.`+0ru   