
    -PhK                       U d dl mZ 	 d dlZd dl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 ej        rddlmZ ddlmZ neZg dgdgdgg ddgdgdZded<   g g dgdgdgdgdgdZded<    G d de          Z G d de          ZdS )    )annotationsN   )mesonlib)ArmClangDynamicLinker	OptionKey   clike_debug_args   clang_color_args)Environment)Compilerz-O0z-gz-O1z-O3z-Otime)plain0g123szT.Dict[str, T.List[str]]arm_optimization_argsz-O2z-Ozarmclang_optimization_argsc                  n    e Zd ZdZdZddZddZddZd dZd!dZ	d"dZ
d#dZddZd$dZd%dZd&dZdS )'ArmCompilerz9Functionality that is common to all ARM family compilers.armreturnNonec                    | j         st          j        d          g }g ||g z   |g z   |g z   d| _        | j                            d           | j                            d           d S )Nz&armcc supports only cross-compilation.)r   r   r   r   
everythingr   sx)is_crossr   EnvironmentException	warn_argscan_compile_suffixesadd)selfdefault_warn_argss     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/mixins/arm.py__init__zArmCompiler.__init__6   s    } 	Z/0XYYY)+!0025025(9B(>	@ @ 	!%%c***!%%d+++++    T.List[str]c                    g S N r'   s    r)   get_pic_argszArmCompiler.get_pic_argsC   s    	r+   c                    g S r.   r/   r0   s    r)   get_always_argszArmCompiler.get_always_argsH       	r+   	outtargetstroutfilec                    d|d|dgS )Nz--depend_targetz--dependz--depend_single_liner/   r'   r5   r7   s      r)   get_dependency_gen_argsz#ArmCompiler.get_dependency_gen_argsK   s    !9j'CYZZr+   pch_dirheaderc                    g S r.   r/   r'   r;   r<   s      r)   get_pch_use_argszArmCompiler.get_pch_use_argsN   s	     	r+   c                    dS )Npchr/   r0   s    r)   get_pch_suffixzArmCompiler.get_pch_suffixV   s	    
 ur+   env'Environment'c                    g S r.   r/   )r'   rC   s     r)   thread_flagszArmCompiler.thread_flags]   r4   r+   c                    g S r.   r/   r0   s    r)   get_coverage_argszArmCompiler.get_coverage_args`   r4   r+   optimization_levelc                    t           |         S r.   )r   r'   rI   s     r)   get_optimization_argsz!ArmCompiler.get_optimization_argsc   s    $%788r+   is_debugboolc                    t           |         S r.   r
   r'   rM   s     r)   get_debug_argszArmCompiler.get_debug_argsf       ))r+   parameter_list	build_dirc           
        t          |          D ]t\  }}|d d         dk    s|d d         dk    rS|d d         t          j                            t          j                            ||dd                              z   ||<   u|S Nr	   z-Iz-L	enumerateospathnormpathjoinr'   rS   rT   idxis        r)   &compute_parameters_with_absolute_pathsz2ArmCompiler.compute_parameters_with_absolute_pathsi       // 	_ 	_FC!u}}"1"&'ebg.>.>rw||IWXYZY[Y[W\?]?].^.^&^s#r+   Nr   r   r   r,   r5   r6   r7   r6   r   r,   r;   r6   r<   r6   r   r,   r   r6   )rC   rD   r   r,   rI   r6   r   r,   rM   rN   r   r,   rS   r,   rT   r6   r   r,   )__name__
__module____qualname____doc__idr*   r1   r3   r:   r?   rB   rF   rH   rL   rQ   r`   r/   r+   r)   r   r   0   s        CC	B, , , ,   
   [ [ [ [            9 9 9 9* * * *     r+   r   c                  ^    e Zd ZdZdZddZddZdd
ZddZddZ	d dZ
d!dZd"dZd#dZdS )$ArmclangCompilerz$
    This is the Keil armclang.
    armclangr   r   c                   | j         st          j        d          t          | j        t
                    s"t          j        d| j        j         d          t          j        | j        d| j        j        z             st          j        d          d dD             | _	        | j
                            d           | j
                            d	           d S )
Nz)armclang supports only cross-compilation.zUnsupported Linker z, must be armlinkz==z4armlink version does not match with compiler versionc                ,    h | ]}t          |          S r/   r   ).0os     r)   	<setcomp>z,ArmclangCompiler.__init__.<locals>.<setcomp>   s+     7 7 7IaLL7 7 7r+   )b_pchb_ltob_pgo
b_sanitize
b_coverageb_ndebugb_staticpic
b_coloroutr   r!   )r"   r   r#   
isinstancelinkerr   exelistversion_compareversionbase_optionsr%   r&   r0   s    r)   r*   zArmclangCompiler.__init__x   s    } 	]/0[\\\$+'<== 	n/0ldkFY0l0l0lmmm'dT[=P6PQQ 	h/0fggg7 767 7 7
 	!%%c***!%%d+++++r+   r,   c                    g S r.   r/   r0   s    r)   r1   zArmclangCompiler.get_pic_args   s	     	r+   	colortyper6   c                ,    t           |         d d          S r.   r   )r'   r   s     r)   get_colorout_argsz"ArmclangCompiler.get_colorout_args   s    	*111--r+   c                    dS )Ngchr/   r0   s    r)   rB   zArmclangCompiler.get_pch_suffix   s    ur+   r;   r<   c                l    dt           j                            ||                     |                    gS )Nz-include-pch)rY   rZ   r\   get_pch_namer>   s      r)   r?   z!ArmclangCompiler.get_pch_use_args   s-     Wd6G6G6O6O P PQQr+   r5   r7   c                    dd|d|gS )Nz-MDz-MTz-MFr/   r9   s      r)   r:   z(ArmclangCompiler.get_dependency_gen_args   s    ui88r+   rI   c                    t           |         S r.   )r   rK   s     r)   rL   z&ArmclangCompiler.get_optimization_args   s    )*<==r+   rM   rN   c                    t           |         S r.   r
   rP   s     r)   rQ   zArmclangCompiler.get_debug_args   rR   r+   rS   rT   c           
        t          |          D ]t\  }}|d d         dk    s|d d         dk    rS|d d         t          j                            t          j                            ||dd                              z   ||<   u|S rV   rW   r]   s        r)   r`   z7ArmclangCompiler.compute_parameters_with_absolute_paths   ra   r+   Nrb   rc   )r   r6   r   r,   rf   re   rd   rg   rh   ri   )rj   rk   rl   rm   rn   r*   r1   r   rB   r?   r:   rL   rQ   r`   r/   r+   r)   rp   rp   q   s          
B, , , ,    
. . . .   R R R R9 9 9 9> > > >* * * *     r+   rp   )
__future__r   rY   typingT r   linkers.linkersr   optionsr   	compilersr   clangr   TYPE_CHECKINGenvironmentr   compilers.compilersr   objectr   __annotations__r   r   rp   r/   r+   r)   <module>r      s   # " " " " " " > 				           4 4 4 4 4 4             ( ( ( ( ( ( # # # # # #? ******/////// H 


	
	
3 3      	




8 8     > > > > >( > > >B6 6 6 6 6x 6 6 6 6 6r+   