§
    ƒnócŒ  ã                  ó„   — d dl mZ 	 d dlZddlmZmZmZ ej        rddl	m
Z
 ddlmZ ddlmZ neZ G d„ d	e¦  «        ZdS )
é    )ÚannotationsNé   )ÚEnvironmentExceptionÚMesonExceptionÚ
is_windows)ÚKeyedOptionDictType)ÚEnvironment)ÚCompilerc                  óì   — e Zd ZdZd@d„Zddd	d
œdAd„ZdBd„ZdCd„ZdDd„ZdCd„Z	dEd„Z
dFd„ZdGd„ZdHd!„ZdCd"„ZdFd#„ZdId$„ZdCd%„ZdCd&„ZdCd'„ZdCd(„ZdCd)„ZdCd*„ZdJd1„ZdKd9„ZdCd:„ZdLd<„ZdMd=„ZdNd>„ZdNd?„Zd	S )OÚBasicLinkerIsCompilerMixinzðProvides a baseline of methods that a linker would implement.

    In every case this provides a "no" or "empty" answer. If a compiler
    implements any of these it needs a different mixin or to override that
    functionality itself.
    ÚvalueÚstrÚreturnúT.List[str]c                ó   — g S ©N© )Úselfr   s     úF/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/islinker.pyÚsanitizer_link_argsz.BasicLinkerIsCompilerMixin.sanitizer_link_args1   ó   € Øˆ	ó    r   ÚdefaultN)ÚthreadsÚmodeÚthinlto_cache_dirr   Úintr   r   úT.Optional[str]c               ó   — g S r   r   )r   r   r   r   s       r   Úget_lto_link_argsz,BasicLinkerIsCompilerMixin.get_lto_link_args4   s   € àˆ	r   Úboolc                ó   — t          ¦   «         S r   )r   ©r   s    r   Úcan_linker_accept_rspz0BasicLinkerIsCompilerMixin.can_linker_accept_rsp8   s   € Ý‰|Œ|Ðr   c                ó4   — | j                              ¦   «         S r   )ÚexelistÚcopyr#   s    r   Úget_linker_exelistz-BasicLinkerIsCompilerMixin.get_linker_exelist;   s   € ØŒ|× Ò Ñ"Ô"Ð"r   Ú
outputnamec                ó   — g S r   r   )r   r)   s     r   Úget_linker_output_argsz1BasicLinkerIsCompilerMixin.get_linker_output_args>   r   r   c                ó   — g S r   r   r#   s    r   Úget_linker_always_argsz1BasicLinkerIsCompilerMixin.get_linker_always_argsA   r   r   c                ó   — dS ©NÚ r   r#   s    r   Úget_linker_lib_prefixz0BasicLinkerIsCompilerMixin.get_linker_lib_prefixD   ó   € Øˆrr   Úoptionsú'KeyedOptionDictType'c                ó   — g S r   r   ©r   r3   s     r   Úget_option_link_argsz/BasicLinkerIsCompilerMixin.get_option_link_argsG   r   r   ÚargsÚenvú'Environment'úT.Tuple[bool, bool]c                ó   — dS )N)FFr   )r   r8   r9   s      r   Úhas_multi_link_argsz.BasicLinkerIsCompilerMixin.has_multi_link_argsJ   s   € Øˆ|r   Ú
targetfilec                ó   — g S r   r   ©r   r>   s     r   Úget_link_debugfile_argsz2BasicLinkerIsCompilerMixin.get_link_debugfile_argsM   r   r   c                ó   — g S r   r   r#   s    r   Úget_std_shared_lib_link_argsz7BasicLinkerIsCompilerMixin.get_std_shared_lib_link_argsP   r   r   c                ó*   — |                       ¦   «         S r   )rC   r6   s     r   Úget_std_shared_module_argsz5BasicLinkerIsCompilerMixin.get_std_shared_module_argsS   s   € Ø×0Ò0Ñ2Ô2Ð2r   c                ó2   — t          d| j        › d�¦  «        ‚)NúLinker z does not support link_whole©r   Úid)r   r8   s     r   Úget_link_whole_forz-BasicLinkerIsCompilerMixin.get_link_whole_forV   s   € Ý"Ð#R¨T¬WÐ#RÐ#RÐ#RÑSÔSÐSr   c                ó2   — t          d| j        › d�¦  «        ‚)NrG   z! does not support allow undefinedrH   r#   s    r   Úget_allow_undefined_link_argsz8BasicLinkerIsCompilerMixin.get_allow_undefined_link_argsY   s   € Ý"Ð#W¨T¬WÐ#WÐ#WÐ#WÑXÔXÐXr   c                ó2   — t          d| j        › d�¦  «        ‚)NrG   z1 does not support position-independent executablerH   r#   s    r   Úget_pie_link_argsz,BasicLinkerIsCompilerMixin.get_pie_link_args\   s   € Ý"Ð#g¨T¬WÐ#gÐ#gÐ#gÑhÔhÐhr   c                ó   — g S r   r   r#   s    r   Úget_undefined_link_argsz2BasicLinkerIsCompilerMixin.get_undefined_link_args_   r   r   c                ó   — g S r   r   r#   s    r   Úget_coverage_link_argsz1BasicLinkerIsCompilerMixin.get_coverage_link_argsb   r   r   c                ó   — g S r   r   r#   s    r   Úno_undefined_link_argsz1BasicLinkerIsCompilerMixin.no_undefined_link_argse   r   r   c                ó    — t          d¦  «        ‚)Nz+This linker doesn't support bitcode bundles©r   r#   s    r   Úbitcode_argsz'BasicLinkerIsCompilerMixin.bitcode_argsh   s   € ÝÐJÑKÔKÐKr   ÚprefixÚ
shlib_nameÚsuffixÚ	soversionÚdarwin_versionsúT.Tuple[str, str]c                ó    — t          d¦  «        ‚)Nz'This linker doesn't support soname argsrV   )r   r9   rX   rY   rZ   r[   r\   s          r   Úget_soname_argsz*BasicLinkerIsCompilerMixin.get_soname_argsk   s   € õ ÐFÑGÔGÐGr   Ú	build_dirÚfrom_dirÚrpath_pathsúT.Tuple[str, ...]Úbuild_rpathÚinstall_rpathú"T.Tuple[T.List[str], T.Set[bytes]]c                ó"   — g t          ¦   «         fS r   )Úset)r   r9   r`   ra   rb   rd   re   s          r   Úbuild_rpath_argsz+BasicLinkerIsCompilerMixin.build_rpath_argsp   s   € ð •C‘E”Eˆ{Ðr   c                ó   — g S r   r   r#   s    r   Úget_asneeded_argsz,BasicLinkerIsCompilerMixin.get_asneeded_argsu   r   r   Ú	buildtypec                ó   — g S r   r   )r   rl   s     r   Úget_buildtype_linker_argsz4BasicLinkerIsCompilerMixin.get_buildtype_linker_argsx   r   r   c                ó   — dS r/   r   r@   s     r   Úget_link_debugfile_namez2BasicLinkerIsCompilerMixin.get_link_debugfile_name{   r2   r   c                ó   — g S r   r   ©r   r9   s     r   Úthread_flagsz'BasicLinkerIsCompilerMixin.thread_flags~   r   r   c                ó   — g S r   r   rr   s     r   Úthread_link_flagsz,BasicLinkerIsCompilerMixin.thread_link_flags�   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   )r   r!   )r   r   )r)   r   r   r   )r   r   )r3   r4   r   r   )r8   r   r9   r:   r   r;   )r>   r   r   r   )r8   r   r   r   )r9   r:   rX   r   rY   r   rZ   r   r[   r   r\   r]   r   r   )r9   r:   r`   r   ra   r   rb   rc   rd   r   re   r   r   rf   )rl   r   r   r   )r>   r   r   r   )r9   r:   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r$   r(   r+   r-   r1   r7   r=   rA   rC   rE   rJ   rL   rN   rP   rR   rT   rW   r_   ri   rk   rn   rp   rs   ru   r   r   r   r   r   (   sN  € € € € € ðð ðð ð ð ð 34ÀØ?Cðð ð ð ð ð ðð ð ð ð#ð #ð #ð #ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð3ð 3ð 3ð 3ðTð Tð Tð TðYð Yð Yð Yðið ið ið iðð ð ð ðð ð ð ðð ð ð ðLð Lð Lð LðHð Hð Hð Hð
ð ð ð ð
ð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r   r   )Ú
__future__r   ÚtypingÚTÚmesonlibr   r   r   ÚTYPE_CHECKINGÚcoredatar   Úenvironmentr	   Úcompilers.compilersr
   Úobjectr   r   r   r   ú<module>rƒ      sÒ   ðð #Ð "Ð "Ð "Ð "Ð "ðð Ð Ð Ð à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hà„?ð 	Ø/Ð/Ð/Ð/Ð/Ð/Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ð/ð €HðZð Zð Zð Zð Z ñ Zô Zð Zð Zð Zr   