
    <hK                       % S SK Jr   S SKrS SKrSSKJr  SSKJr  SSK	J
r
  SSKJr  S	S
KJr  \R                  (       a  SSKJr  SSKJr  O\r/ S/S/S// SS/S/S.rS\S'   / / S/S/S/S/S/S.rS\S'    " S S\5      r " S S\5      rg)    )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                      \ rS rSrSrSrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrSS jrSrg)ArmCompiler0   z9Functionality that is common to all ARM family compilers.armc                    U R                   (       d  [        R                  " S5      e/ n/ UU/ -   U/ -   U/ -   S.U l        U R                  R                  S5        U R                  R                  S5        g )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     ڀ/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/compilers/mixins/arm.py__init__ArmCompiler.__init__6   ss    }}//0XYY)+!0025025(9B(>	@ 	!!%%c*!!%%d+    c                    / $ N r%   s    r'   get_pic_argsArmCompiler.get_pic_argsC   s    	r*   c                    / $ r,   r-   r.   s    r'   get_always_argsArmCompiler.get_always_argsH       	r*   c                    SUSUS/$ )Nz--depend_targetz--dependz--depend_single_liner-   r%   	outtargetoutfiles      r'   get_dependency_gen_args#ArmCompiler.get_dependency_gen_argsK   s    !9j'CYZZr*   c                    / $ r,   r-   r%   pch_dirheaders      r'   get_pch_use_argsArmCompiler.get_pch_use_argsN   s	     	r*   c                    g)Npchr-   r.   s    r'   get_pch_suffixArmCompiler.get_pch_suffixV   s    
 r*   c                    / $ r,   r-   )r%   envs     r'   thread_flagsArmCompiler.thread_flags]   r4   r*   c                    / $ r,   r-   r.   s    r'   get_coverage_argsArmCompiler.get_coverage_args`   r4   r*   c                    [         U   $ r,   )r   r%   optimization_levels     r'   get_optimization_args!ArmCompiler.get_optimization_argsc   s    $%788r*   c                    [         U   $ r,   r	   r%   is_debugs     r'   get_debug_argsArmCompiler.get_debug_argsf       ))r*   c           
         [        U5       H`  u  p4US S S:X  d  US S S:X  d  M  US S [        R                  R                  [        R                  R	                  X$SS  5      5      -   X'   Mb     U$ Nr   z-Iz-L	enumerateospathnormpathjoinr%   parameter_list	build_diridxis        r'   &compute_parameters_with_absolute_paths2ArmCompiler.compute_parameters_with_absolute_pathsi   l    /FC!u}"1&'ebgg.>.>rww||IYZY[W\?].^&^# 0 r*   )r"   NreturnNonerh   T.List[str]r7   strr8   rm   rh   rk   r=   rm   r>   rm   rh   rk   rh   rm   )rF   z'Environment'rh   rk   rN   rm   rh   rk   rS   boolrh   rk   r`   rk   ra   rm   rh   rk   )__name__
__module____qualname____firstlineno____doc__idr(   r/   r2   r9   r?   rC   rG   rJ   rO   rT   rd   __static_attributes__r-   r*   r'   r   r   0   sB    C	B,
[9*r*   r   c                  v    \ rS rSrSrSrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSrg)ArmclangCompilerq   z
This is the Keil armclang.
armclangc                J   U R                   (       d  [        R                  " S5      e[        U R                  [
        5      (       d.  [        R                  " SU R                  R                   S35      e[        R                  " U R                  SU R                  R                  -   5      (       d  [        R                  " S5      eS Vs1 s H  n[        U5      iM     snU l
        U R                  R                  S5        U R                  R                  S5        g s  snf )	Nz)armclang supports only cross-compilation.zUnsupported Linker z, must be armlinkz==z4armlink version does not match with compiler version)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versionr   base_optionsr#   r$   )r%   os     r'   r(   ArmclangCompiler.__init__x   s    }}//0[\\$++'<==//2EdkkFYFYEZZk0lmm''dT[[=P=P6PQQ//0fgg676 IaL67
 	!!%%c*!!%%d+7s   D c                    / $ r,   r-   r.   s    r'   r/   ArmclangCompiler.get_pic_args   s	     	r*   c                    [         U   S S  $ r,   r   )r%   	colortypes     r'   get_colorout_args"ArmclangCompiler.get_colorout_args   s    	*1--r*   c                    g)Ngchr-   r.   s    r'   rC   ArmclangCompiler.get_pch_suffix   s    r*   c                b    S[         R                  R                  XR                  U5      5      /$ )Nz-include-pch)r[   r\   r^   get_pch_namer<   s      r'   r?   !ArmclangCompiler.get_pch_use_args   s'     W6G6G6O PQQr*   c                    SSUSU/$ )Nz-MDz-MTz-MFr-   r6   s      r'   r9   (ArmclangCompiler.get_dependency_gen_args   s    ui88r*   c                    [         U   $ r,   )r   rM   s     r'   rO   &ArmclangCompiler.get_optimization_args   s    )*<==r*   c                    [         U   $ r,   r	   rR   s     r'   rT   ArmclangCompiler.get_debug_args   rV   r*   c           
         [        U5       H`  u  p4US S S:X  d  US S S:X  d  M  US S [        R                  R                  [        R                  R	                  X$SS  5      5      -   X'   Mb     U$ rX   rY   r_   s        r'   rd   7ArmclangCompiler.compute_parameters_with_absolute_paths   rf   r*   )r   Nrg   rj   )r   rm   rh   rk   ro   rn   rl   rp   rq   rs   )rt   ru   rv   rw   rx   ry   r(   r/   r   rC   r?   r9   rO   rT   rd   rz   r-   r*   r'   r|   r|   q   s<     
B, 
.R9>*r*   r|   )
__future__r   r[   typingT r   linkers.linkersr   optionsr   	compilersr
   clangr   TYPE_CHECKINGenvironmentr   compilers.compilersr   objectr   __annotations__r   r   r|   r-   r*   r'   <module>r      s    # > 	   4   ( #??*/ H 


	
	
3 /  	




8 4 >( >B6x 6r*   