
    -Ph&                    T   d dl mZ d dlZddlmZ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 ddlmZmZmZm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"  G d dee
          Z# G d deee#          Z$ G d deee#          Z% G d dee%          Z&dS )    )annotationsN   )	OptionKeyUserStdOption   )ALL_STDS)Compiler)AppleCStdsMixin)ClangCompiler
ClangCStds)CLikeCompiler)GnuCompilerGnuCStdsgnu_common_warning_argsgnu_objc_warning_args)MachineInfo)Environment)DynamicLinker)MachineChoice)BuildTarget)MutableKeyedOptionDictTypec                  ^     e Zd ZdZ	 	 dd dZd! fdZed"d            Zd#dZd$ fdZ	 xZ
S )%ObjCCompilerobjcNccacheT.List[str]exelistversionstrfor_machiner   is_crossboolinfo'MachineInfo'linkerT.Optional['DynamicLinker']full_versionT.Optional[str]c	                h    t          j        | ||||||||	  	         t          j        |            d S )N)r!   r'   r%   )r	   __init__r   )	selfr   r   r   r    r!   r#   r%   r'   s	            Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/objc.pyr*   zObjCCompiler.__init__   sK     	$+t#+,!'	) 	) 	) 	) 	t$$$$$    returnr   c                    t                                                      }|                     d          }|                    |t	          dt
                    i           |S )Nstdc)superget_optionsform_compileropt_keyupdater   r   )r+   optskey	__class__s      r,   r3   zObjCCompiler.get_options'   s\    ww""$$''..sH--
 	 	 	 r-   c                     dS )NzObjective-C r:   r-   r,   get_display_languagez!ObjCCompiler.get_display_language/   s    }r-   work_direnvironment'Environment'Nonec                6    d}|                      ||d|          S )Nz/#import<stddef.h>
int main(void) { return 0; }
zsanitycheckobjc.m)_sanity_check_impl)r+   r<   r=   codes       r,   sanity_checkzObjCCompiler.sanity_check3   s#    B&&x>QSWXXXr-   basenamer   c                    |dk    rt          d| | j                  S t                                          |          S )Nr0   c_machiner   r    r2   r4   r+   rD   r8   s     r,   r4   z!ObjCCompiler.form_compileropt_key7   sB    u_(__d6FGGGGww++H555r-   )NN)r   r   r   r   r   r   r    r   r!   r"   r#   r$   r%   r&   r'   r(   )r.   r   )r.   r   )r<   r   r=   r>   r.   r?   rD   r   r.   r   )__name__
__module____qualname__languager*   r3   staticmethodr;   rC   r4   __classcell__r8   s   @r,   r   r      s        H 8<15% % % % %         \Y Y Y Y6 6 6 6 6 6 6 6 6 6r-   r   c                  (    e Zd Z	 	 	 dddZdddZdS )GnuObjCCompilerNr   r   r   r   r   r    r   r!   r"   r#   r$   definesT.Optional[T.Dict[str, str]]r%   r&   r'   r(   c
                    t                               | ||||||||		  	         t          j        | |           ddg}
g |
|
dgz   |
ddgz   |
ddgz   |                     t                    z   |                     t
                    z   d| _        d S )Nr%   r'   -Wall-Winvalid-pch-Wextra
-Wpedantic0123
everything)r   r*   r   supported_warn_argsr   r   	warn_argsr+   r   r   r   r    r!   r#   rU   r%   r'   default_warn_argss              r,   r*   zGnuObjCCompiler.__init__>   s    
 	dFGWk8"6 	 	N 	N 	NT7+++$o6!00I;>0I|3LL):i=V)V)-)A)ABY)Z)Z*[)-)A)ABW)X)X*Y	[ [r-   targetr   envr   
subprojectr.   c                   g }t          d|| j                  }|r|j                            ||          }n|j        j                            |          }t          |t                    sJ |dk    r|                    d|z              |S )Nc_std)ri   rH   none-std=)	r   r    coredataget_option_for_targetoptstoreget_value_for
isinstancer   appendr+   rg   rh   ri   argsr7   r0   s          r,   get_option_std_argsz#GnuObjCCompiler.get_option_std_argsO   s    J@PQQQ 	;,44VSAACC,'55c::C#s#####&==KK#&&&r-   NNNr   r   r   r   r   r   r    r   r!   r"   r#   r$   rU   rV   r%   r&   r'   r(   Nrg   r   rh   r   ri   r(   r.   r   )rL   rM   rN   r*   rv   r:   r-   r,   rT   rT   =   sV         :>7;15	[ [ [ [ ["
 
 
 
 
 
 
r-   rT   c                  F     e Zd Z	 	 	 d d!dZd" fdZd# fdZd$d%dZ xZS )&ClangObjCCompilerNr   r   r   r   r   r    r   r!   r"   r#   r$   rU   rV   r%   r&   r'   r(   c
                    t                               | ||||||||		  	         t          j        | |           ddg}
g |
|
dgz   |
ddgz   dgd| _        d S )NrX   rY   rZ   r[   r\   z-Weverythingr]   )r   r*   r   rd   re   s              r,   r*   zClangObjCCompiler.__init__\   s    
 	dFGWk8"6 	 	N 	N 	NtW---$o6!00I;>0I|3LL)7(8	: :r-   rD   r.   r   c                ~    |dk    rt          d| j                  S t                                          |          S )Nr0   rk   rG   rI   rJ   s     r,   r4   z&ClangObjCCompiler.form_compileropt_keyk   s<    uWd.>????ww++H555r-   r7   c                `    |j         dk    rdS t                                          |          S )Nr0   rk   )namer2   make_option_name)r+   r7   r8   s     r,   r   z"ClangObjCCompiler.make_option_namep   s-    8u7ww'',,,r-   rg   r   rh   r   ri   c                    g }t          d| j                  }|                     ||||          }t          |t                    sJ |dk    r|                    d|z              |S )Nrk   rG   rl   rm   )r   r    get_compileropt_valuerr   r   rs   rt   s          r,   rv   z%ClangObjCCompiler.get_option_std_argsu   so    )9:::((c6:FF#s#####&==KK#&&&r-   rw   rx   rK   )r7   r   r.   r   ry   rz   )rL   rM   rN   r*   r4   r   rv   rQ   rR   s   @r,   r|   r|   [   s         :>7;15	: : : : :6 6 6 6 6 6
- - - - - -
        r-   r|   c                      e Zd ZdZdS )AppleClangObjCCompilerz?Handle the differences between Apple's clang and vanilla clang.N)rL   rM   rN   __doc__r:   r-   r,   r   r   ~   s        IIIIr-   r   )'
__future__r   typingToptionsr   r   r1   r   	compilersr	   mixins.appler
   mixins.clangr   r   mixins.cliker   
mixins.gnur   r   r   r   TYPE_CHECKING	envconfigr   r=   r   linkers.linkersr   mesonlibr   buildr   r   r   rT   r|   r   r:   r-   r,   <module>r      s   # " " " " "     . . . . . . . .             ) ) ) ) ) ) 3 3 3 3 3 3 3 3 ' ' ' ' ' ' ] ] ] ] ] ] ] ] ] ] ] ]? 5''''''))))))//////((((((######444444 6  6  6  6  6=(  6  6  6F    h\   <! ! ! ! !
M< ! ! !FJ J J J J_.? J J J J Jr-   