
    -Ph,                    "   U d dl mZ ddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZ d dlZd dlZd dlZej        rddlmZmZ dd	lmZ dd
lmZ ddlmZ i Zded<   ddged<   dged<   dged<   dged<   dged<   dged<   d6d#Zd$d$dd%d7d3Zdd4d8d5ZdS )9    )annotations   )RSPFileSyntax   )mlog)EnvironmentException
Popen_safePopen_safe_logged	join_argssearch_versionN)DynamicLinkerGnuDynamicLinker)Environment)Compiler)MachineChoicezT.Dict[str, T.List[str]]defaultsargarstatic_linkerlibvs_static_linkerzllvm-libclang_cl_static_linkernvlinkcuda_static_linkerzgcc-argcc_static_linkerzllvm-arclang_static_linkercompilerT.List[str]argsstdoutstrstderrreturn'T.NoReturn'c                n    d                     t          | |z             ||          }t          |          )Nz?Unable to detect linker for compiler `{}`
stdout: {}
stderr: {})formatr   r   )r   r   r    r"   msgs        Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/linkers/detect.py__failed_to_detect_linkerr)      s8    
M
T
T(T/""FF4 4C
s
#
##    T)use_linker_prefixinvoked_directly
extra_argsenv'Environment'
comp_classT.Type['Compiler']comp_versionfor_machiner   r+   boolr,   r-   T.Optional[T.List[str]]'DynamicLinker'c          
        ddl m} | j                            |j        |||            |s|                                dk    rt          j        }	nt          j        }	|r|j	        ddg}
nFt          |j	        t                    r|j	        dz   |j	        dz   g}
n|j	        dgz   |j	        z   dgz   }
|
| j                            ||j                  z  }
g }|                     ||j        dz             }|"|                    |d         |          }|
|z  }
nd|v r|                    d|          }|
|z  }
||
                    |           t!          ||
z             \  }}}d	|                    d
d          d         v rad|v r,|                    |||j	        |t'          |                    S |s/|                    ||||j	        t'          |          dd |	          S ||r|}t!          ||
z             \  }}}d	|                    d
d          d         v r2|                    |g |r|j	        ng |t'          |          ||	          S d|v r%|                    ||t'          |                    S |                    d          s|                    d          rs|p|}t/          j        d|          }|r#t          |                    d                    }nd}|                    |g |||r|j	        ng t'          |          ||	          S d|v r2dd l}|                    |d                   }t;          d| d          t=          ||
||           d S )Nr   linkersmsvcz/logo	--version_ldr   zlld-linkLLD
maxsplitzcompatible with GNU linkersversionF)exelistprefixrB   directmachine
rsp_syntax)rD   rC   rB   rE   rG   OPTLINK	Microsoftz.*(X86|X64|ARM|ARM64).*x86)rF   rC   rD   rB   rE   rG   zGNU coreutilsz/Found GNU link.exe instead of MSVC link.exe in zi.
This link.exe is not a linker.
You may need to reorder entries to your %PATH% variable to resolve this.) r9   coredataadd_lang_argslanguageget_argument_syntaxr   MSVCGCCLINKER_PREFIX
isinstancer!   get_external_link_argslookup_binary_entryuse_linker_argsextendr	   splitLLVMDynamicLinkerr   ClangClDynamicLinkerOptlinkDynamicLinker
startswithresearchgroupMSVCDynamicLinkershutilwhichr   r)   )r.   r   r0   r2   r3   r+   r,   r-   r9   rG   
check_argsoverridevaluepo_eoutmatchtargetra   fullpaths                         r(   guess_win_linkerrn   %   s+    Lz2JSQQQ ':99;;vEE"'

"&
  e
 8 @{+

	J,c	2	2 e .8*:RU`:`a

-	9J<TTXcWdd
#,55k:CVWWWJH##K1Du1LMME--eAhEEh

	x		--j,GGh
*%%%J.//GAq!q))!,,,(A--,,+z'?."3"3 - 5 5 5 " 	'//Xx
@X&q))%% 0 ' ' '
 - J.//GAq!q))!,,,++/@H:++bnQ&7&7@P!	 , # # 	#
 
a++Hk>Z[K\K\+]]]	
k	"	" Xall;&?&? Xf1	4c:: 	Q((FFF((VX/@H:++b"3''0@!	 ) # # 	#
 
A		<<,,"Wh W W WX X 	X h
Aq99999r*   )r-   c          	     B   ddl m} | j                            |j        |||            |pg }| j        |         j        }| j                            ||j                  }||                    || j        |                   z  }t          |j
        t                    r|j
        dz   g|z   }	n|j
        dgz   |z   }	g }
|                     ||j        dz             }|!|                    |d         |          }
|	|
z  }	t          j        d           t!          ||	z   d	          \  }}}t#          ||z             }d
|                    dd          d         v sd|v rt          |j
        t                    r||
z   |j
        dz   gz   |z   }n||
z   |j
        z   dgz   |z   }t!          |d	          \  }}}d|v r|j        }n|j        } ||||j
        |
||          }n>d|v r%d|v r!|                    |||j
        |
|          }n|                    d          rt/          ||	z   dgz             \  }}}	 t1          j        d|t0          j                                      d          }t9          j        |          d         }t/          |dg          \  }}}t#          |          }n# t:          t<          t>          f$ r Y nw xY w|                    |||j
        |
|          }n5d|v sd|v r|                    d          s|                    d          r|j         }n9|                    d          s|                    d          r|j!        }n|j"        } ||||j
        |
|          }nd|v sd|v rq||z                       d          D ]5}d|v r/|                    d          d         #                                } n6d}|$                    |||j
        |
|          }n2d|v rt          |j
        t                    r#t/          ||j
        d z   gz   |z             \  }}}n"t/          ||j
        z   d gz   |z             \  }}}|%                    |||j
        |
t#          |                    }n|                    d!          r!|&                    |||j
        |
|          }nkd"|                    dd          d         v r[|                    d#d          d         }|                    d$d          d         }|'                    |||j
        |
||          }n|(                    d%          sd&|v sd'|v rt          |j
        t                    r||j
        dz   gz   |z   }n||j
        z   dgz   |z   }t!          |d(	          \  }}}|                    d          D ]'}d)|v sd*|v r|                    d$          d         } n(tS          ||	||           |'                    |||j
        |
||          }ntS          ||	||           |S )+aP  Helper for guessing what linker to use on Unix-Like OSes.

    :compiler: Invocation to use to get linker
    :comp_class: The Compiler Type (uninstantiated)
    :comp_version: The compiler version string
    :for_machine: which machine this linker targets
    :extra_args: Any additional arguments required (such as a source file)
    r   r8   r;   r<   Nr   z-----zDetecting linker via)r'   r=   r>   r?   tiarmlnkz-vzDetecting LLD linker viazld64.lld)systemrB   
SnapdragonLLVMrA   z
lld-link: z.*\n(.*?)\nlld-link: GNUzGNU goldmoldSolarisz!ld: Software Generation Utilities:r   zunknown versionz*ld: 0706-012 The -- flag is not recognizedz-Vzzig ldzxtools- -z(use -v to see invocation)
macosx_versionzld: unknown optionzDetecting Apple linker viaz
PROJECT:ldzPROJECT:dyld)*rK   r9   rL   rM   rN   machinesrq   rT   _unix_args_to_nativerS   rR   r!   rU   rV   r   debugr
   r   rX   LLVMLD64DynamicLinkerrY   QualcommLLVMDynamicLinkerr\   r	   r]   rk   DOTALLr_   shlexAttributeError
IndexError
ValueErrorGnuGoldDynamicLinkerMoldDynamicLinkerGnuBFDDynamicLinkerlstripSolarisDynamicLinkerAIXDynamicLinkerZigCCDynamicLinkerAppleDynamicLinkerendswithr)   )r.   r   r0   r2   r3   r-   r9   rq   ldflagsrc   rd   re   rf   rg   ri   vcmdrh   newonewerrlld_clslinker
linker_cmdgnu_clslinextoolss                             r(   guess_nix_linkerr   w   sC    Lz2JSQQQ!rJ\+&-Fl11+z?RSSG*11'3<;TUUUJ**C00 K .<=
J

-=
J
H##K1Du1LMME--eAhEEh
Jw: 5;QRRRGAq!q1uAq))!,,,
aj.44 	WX%)AD)H(IIJVCCX%
(@@D6IJVC+C5OPPP4 3GG/Gk:#;Xf^_a a a			v{{22k:#;Xq 3 R R	
l	#	# Q> X
2dV;<<1a	"":AryIIOOPQRRJZ003J !*k!:;;GAq!q!!AA	 
J7 	 	 	D	 **8[*BZ\dno*pp	!uzz <<
## 	2q||J'?'? 	22GG\\&!! 	2Q\\&%9%9 	2/GG1G;
0H(\]^^^	a9>>qSKK%% 	" 	"D2d::JJsOOA&--// ; "A--k:#;X .   
6	:	:j.44 	\ Z-E-L,M!MPZ!Z[[GAq!! J,D!Dv!MPZ!Z[[GAq!))k:#;X"1%% * ' ' 
h		 ">++k:#;Xq , R R 
aggdQg//2	2	2q))!,LLqL))!,++k:#;X1 , 
 
 
2	3	3 >7G17L7LPdhiPiPij.44 	Lj6=>>KCCZ55>KC+C5QRRR4LL&& 	B 	BDt##~'='=JJsOOA& (> &h
AqAAA++k:#;X1 , 
 

 	"(J1===Ms   :AJ, ,KK)
r   r   r   r   r    r!   r"   r!   r#   r$   )r.   r/   r   r   r0   r1   r2   r!   r3   r   r+   r4   r,   r4   r-   r5   r#   r6   )r.   r/   r   r   r0   r1   r2   r!   r3   r   r-   r5   r#   r6   )
__future__r   baser   rK   r   mesonlibr   r	   r
   r   r   r]   r   typingTTYPE_CHECKINGr9   r   r   environmentr   	compilersr   r   r   __annotations__r)   rn   r    r*   r(   <module>r      s   # " " " " " "                         
 
			     ? )88888888))))))$$$$$$((((((%' ' ' ' '!5M  %w	 &0\	! ""*	 !)
	 #,+	 $ $ $ $ 04d;?P: P: P: P: P: P:h <@G G G G G G G Gr*   