
    -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mZmZ dd
lmZmZ ddl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)AppleCPPStdsMixin)GnuCompiler
GnuCPPStdsgnu_common_warning_argsgnu_objc_warning_args)ClangCompilerClangCPPStds)CLikeCompiler)MachineInfo)Environment)DynamicLinker)MachineChoice)BuildTarget)MutableKeyedOptionDictTypec                  j     e Zd ZdZ	 	 d!d"dZd# fdZd$ fdZed%d            Zd&dZ	d' fd Z
 xZS )(ObjCPPCompilerobjcppN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	            [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/objcpp.pyr*   zObjCPPCompiler.__init__   sK     	$+t#+,!'	) 	) 	) 	) 	t$$$$$    basenamereturnr   c                ~    |dk    rt          d| j                  S t                                          |          S )Nstdcpp_stdmachine)r   r    superform_compileropt_key)r+   r.   	__class__s     r,   r6   z#ObjCPPCompiler.form_compileropt_key'   s<    uY0@AAAAww++H555r-   keyc                `    |j         dk    rdS t                                          |          S )Nr1   r2   )namer5   make_option_name)r+   r8   r7   s     r,   r;   zObjCPPCompiler.make_option_name,   s-    8u9ww'',,,r-   c                     dS )NzObjective-C++ r=   r-   r,   get_display_languagez#ObjCPPCompiler.get_display_language1   s    r-   work_direnvironment'Environment'Nonec                6    d}|                      ||d|          S )Nz<#import<stdio.h>
class MyClass;int main(void) { return 0; }
zsanitycheckobjcpp.mm)_sanity_check_impl)r+   r?   r@   codes       r,   sanity_checkzObjCPPCompiler.sanity_check5   s#    O&&x>TVZ[[[r-   r   c                    t                                                      }|                     d          }|                    |t	          dt
                    i           |S )Nr1   cpp)r5   get_optionsr6   updater   r   )r+   optsr8   r7   s      r,   rI   zObjCPPCompiler.get_options9   s\    ww""$$''..uh//
 	 	 	 r-   )NN)r   r   r   r   r   r   r    r   r!   r"   r#   r$   r%   r&   r'   r(   )r.   r   r/   r   )r8   r   r/   r   )r/   r   )r?   r   r@   rA   r/   rB   )r/   r   )__name__
__module____qualname__languager*   r6   r;   staticmethodr>   rF   rI   __classcell__)r7   s   @r,   r   r      s        H 8<15% % % % %6 6 6 6 6 6
- - - - - -
    \\ \ \ \         r-   r   c                  (    e Zd Z	 	 	 dddZdddZdS )GnuObjCPPCompilerNr   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#   rT   r%   r'   default_warn_argss              r,   r*   zGnuObjCPPCompiler.__init__C   s    
 	fgwX $V, 	  	P 	P 	P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 )Nr2   )rh   r4   none-std=)	r   r    coredataget_option_for_targetoptstoreget_value_for
isinstancer   appendr+   rf   rg   rh   argsr8   r1   s          r,   get_option_std_argsz%GnuObjCPPCompiler.get_option_std_argsT   s    	j$BRSSS 	;,44VSAACC,'55c::C#s#####&==KK#&&&r-   NNNr   r   r   r   r   r   r    r   r!   r"   r#   r$   rT   rU   r%   r&   r'   r(   Nrf   r   rg   r   rh   r(   r/   r   rL   rM   rN   r*   rt   r=   r-   r,   rS   rS   B   sV         :>7;15	[ [ [ [ ["
 
 
 
 
 
 
r-   rS   c                  (    e Zd Z	 	 	 dddZdddZdS )ClangObjCPPCompilerNr   r   r   r   r   r    r   r!   r"   r#   r$   rT   rU   r%   r&   r'   r(   c
                    t                               | ||||||||		  	         t          j        | |           ddg}
g |
|
dgz   |
ddgz   dgd| _        d S )NrW   rX   rY   rZ   r[   z-Weverythingr\   )r   r*   r   rc   rd   s              r,   r*   zClangObjCPPCompiler.__init__b   s    
 	fgwX $V, 	  	P 	P 	PtW---$o6!00I;>0I|3LL)7(8	: :r-   rf   r   rg   r   rh   r/   c                    g }t          d| j                  }|                     ||||          }t          |t                    sJ |dk    r|                    d|z              |S )Nr2   r3   rj   rk   )r   r    get_compileropt_valuerp   r   rq   rr   s          r,   rt   z'ClangObjCPPCompiler.get_option_std_argsq   so    	4+;<<<((c6:FF#s#####&==KK#&&&r-   ru   rv   rw   rx   ry   r=   r-   r,   r{   r{   `   sQ         :>7;15	: : : : :      r-   r{   c                      e Zd ZdZdS )AppleClangObjCPPCompilerz?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   rH   r   	compilersr	   mixins.appler
   
mixins.gnur   r   r   r   mixins.clangr   r   mixins.cliker   TYPE_CHECKING	envconfigr   r@   r   linkers.linkersr   mesonlibr   buildr   r   r   rS   r{   r   r=   r-   r,   <module>r      s   # " " " " "     . . . . . . . .             + + + + + + _ _ _ _ _ _ _ _ _ _ _ _ 5 5 5 5 5 5 5 5 ' ' ' ' ' '? 5''''''))))))//////((((((######444444% % % % %]H % % %P    
K   <    ,~   6J J J J J02E J J J J Jr-   