+
    UBi                        ^ RI Ht  ^ RIt^RIHtHtHt ]P                  '       d   ^RI	H
t
 ^RIHt ^RIHt M]t
 ! R R]
4      tR# )	    )annotationsN)EnvironmentExceptionMesonException
is_windows)Compiler)BuildTarget)OptionStorec                  n   ] tR t^tRtR R ltRRR^ RRR	R/R
 R lltR R ltR R ltR R lt	R R lt
R R ltR=R R lltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR=R0 R1 lltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR<tR# )>BasicLinkerIsCompilerMixinzProvides 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.
c               $    V ^8  d   QhRRRRRR/# )   targetr   valueT.List[str]return )formats   "I/usr/lib/python3.14/site-packages/mesonbuild/compilers/mixins/islinker.py__annotate__'BasicLinkerIsCompilerMixin.__annotate__(   s!      + k k     c                	    . # Nr   )selfr   r   s   &&&r   sanitizer_link_args.BasicLinkerIsCompilerMixin.sanitizer_link_args(       	r   r   Nthreadsmodedefaultthinlto_cache_dirc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r   zT.Optional[BuildTarget]r   intr   strr!   T.Optional[str]r   r   r   )r   s   "r   r   r   +   s4      +B TW  #DS_jr   c               	    . # r   r   )r   r   r   r   r!   s   &$$$$r   get_lto_link_args,BasicLinkerIsCompilerMixin.get_lto_link_args+   s    	r   c                   V ^8  d   QhRR/# )r   r   boolr   )r   s   "r   r   r   /   s      t r   c                	    \        4       # r   )r   r   s   &r   can_linker_accept_rsp0BasicLinkerIsCompilerMixin.can_linker_accept_rsp/   s
    |r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   2   s     # #K #r   c                	6    V P                   P                  4       # r   )exelistcopyr,   s   &r   get_linker_exelist-BasicLinkerIsCompilerMixin.get_linker_exelist2   s    ||  ""r   c                    V ^8  d   QhRRRR/# )r   
outputnamer$   r   r   r   )r   s   "r   r   r   5   s        r   c                	    . # r   r   )r   r7   s   &&r   get_linker_output_args1BasicLinkerIsCompilerMixin.get_linker_output_args5   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   8          r   c                	    . # r   r   r,   s   &r   get_linker_always_args1BasicLinkerIsCompilerMixin.get_linker_always_args8   r   r   c                   V ^8  d   QhRR/# )r   r   r$   r   )r   s   "r   r   r   ;   s      s r   c                	    R # ) r   r,   s   &r   get_linker_lib_prefix0BasicLinkerIsCompilerMixin.get_linker_lib_prefix;   s    r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   
subprojectr%   r   r   r   )r   s   "r   r   r   >   s"      ; O _j r   c                	    . # r   r   )r   r   rF   s   &&&r   get_option_link_args/BasicLinkerIsCompilerMixin.get_option_link_args>   r   r   c                    V ^8  d   QhRRRR/# )r   argsr   r   zT.Tuple[bool, bool]r   )r   s   "r   r   r   A   s       8K r   c                	    R# )F)FFr   r   rK   s   &&r   has_multi_link_args.BasicLinkerIsCompilerMixin.has_multi_link_argsA   s    r   c                    V ^8  d   QhRRRR/# )r   
targetfiler$   r   r   r   )r   s   "r   r   r   D   s      # + r   c                	    . # r   r   r   rQ   s   &&r   get_link_debugfile_args2BasicLinkerIsCompilerMixin.get_link_debugfile_argsD   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   G   s      k r   c                	    . # r   r   r,   s   &r   get_std_shared_lib_link_args7BasicLinkerIsCompilerMixin.get_std_shared_lib_link_argsG   r   r   c                    V ^8  d   QhRRRR/# )r   optionsr	   r   r   r   )r   s   "r   r   r   J   s     3 3+ 3+ 3r   c                	"    V P                  4       # r   )rX   )r   r[   s   &&r   get_std_shared_module_args5BasicLinkerIsCompilerMixin.get_std_shared_module_argsJ   s    0022r   c                    V ^8  d   QhRRRR/# )r   rK   r   r   r   )r   s   "r   r   r   M   s     T T{ T{ Tr   c                	4    \        R V P                   R24      h)Linker z does not support link_wholer   idrM   s   &&r   get_link_whole_for-BasicLinkerIsCompilerMixin.get_link_whole_forM   s    "WTWWI5Q#RSSr   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   P   s     Y Y{ Yr   c                	4    \        R V P                   R24      h)ra   z! does not support allow undefinedrb   r,   s   &r   get_allow_undefined_link_args8BasicLinkerIsCompilerMixin.get_allow_undefined_link_argsP   s    "WTWWI5V#WXXr   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   S   s     i i; ir   c                	4    \        R V P                   R24      h)ra   z1 does not support position-independent executablerb   r,   s   &r   get_pie_link_args,BasicLinkerIsCompilerMixin.get_pie_link_argsS   s    "WTWWI5f#ghhr   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   V   s       r   c                	    . # r   r   r,   s   &r   get_undefined_link_args2BasicLinkerIsCompilerMixin.get_undefined_link_argsV   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   Y   r<   r   c                	    . # r   r   r,   s   &r   get_coverage_link_args1BasicLinkerIsCompilerMixin.get_coverage_link_argsY   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   \   r<   r   c                	    . # r   r   r,   s   &r   no_undefined_link_args1BasicLinkerIsCompilerMixin.no_undefined_link_args\   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   _   s     L Lk Lr   c                	    \        R 4      h)z+This linker doesn't support bitcode bundlesr   r,   s   &r   bitcode_args'BasicLinkerIsCompilerMixin.bitcode_args_   s    JKKr   c               0    V ^8  d   QhRRRRRRRRRRRR	/# )
r   prefixr$   
shlib_namesuffix	soversiondarwin_versionszT.Tuple[str, str]r   r   r   )r   s   "r   r   r   b   sB     H Hc Hs H #H03H):H?JHr   c                	    \        R 4      h)z'This linker doesn't support soname argsr|   )r   r   r   r   r   r   s   &&&&&&r   get_soname_args*BasicLinkerIsCompilerMixin.get_soname_argsb   s     FGGr   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   	build_dirr$   from_dirr   r   extra_pathszT.Optional[T.List[str]]r   z"T.Tuple[T.List[str], T.Set[bytes]]r   )r   s   "r   r   r   g   s1      #  k &=@r   c                	    . \        4       3# r   )set)r   r   r   r   r   s   &&&&&r   build_rpath_args+BasicLinkerIsCompilerMixin.build_rpath_argsg   s     CE{r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   l         ; r   c                	    . # r   r   r,   s   &r   get_asneeded_args,BasicLinkerIsCompilerMixin.get_asneeded_argsl   r   r   c                    V ^8  d   QhRRRR/# )r   optimization_levelr$   r   r   r   )r   s   "r   r   r   o   s      S [ r   c                	    . # r   r   )r   r   s   &&r   get_optimization_link_args5BasicLinkerIsCompilerMixin.get_optimization_link_argso   r   r   c                    V ^8  d   QhRRRR/# )r   rQ   r$   r   r%   r   )r   s   "r   r   r   r   s      # / r   c                	    R # r   r   rS   s   &&r   get_link_debugfile_name2BasicLinkerIsCompilerMixin.get_link_debugfile_namer   s    r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   u   s      k r   c                	    . # r   r   r,   s   &r   thread_flags'BasicLinkerIsCompilerMixin.thread_flagsu   r   r   c                   V ^8  d   QhRR/# r0   r   )r   s   "r   r   r   x   r   r   c                	    . # r   r   r,   s   &r   thread_link_flags,BasicLinkerIsCompilerMixin.thread_link_flagsx   r   r   r   r   ) __name__
__module____qualname____firstlineno____doc__r   r'   r-   r4   r9   r>   rC   rH   rN   rT   rX   r]   rd   rh   rl   rp   rt   rx   r}   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s    T Z[ &/VZ#3TYiLH

 r   r   )
__future__r   typingTmesonlibr   r   r   TYPE_CHECKINGcompilers.compilersr   buildr   r[   r	   objectr   r   r   r   <module>r      sA   
 #  H H???/$& HZ Zr   