§
    ƒnócf  ã                  ó&  — 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 g g g g g dœZg dgdgdgg ddgdgdœZg g g g g g dœZg g dgdgdgdgdgdœZ G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úmesonlib)ÚArmClangDynamicLinker©Ú	OptionKeyé   ©Úclike_debug_argsé   ©Úclang_color_args)ÚEnvironment)ÚCompiler)ÚplainÚdebugÚdebugoptimizedÚreleaseÚminsizeÚcustomz-O0z-gz-O1z-O3z-Otime)r   Ú0ÚgÚ1Ú2Ú3Úsz-O2z-Ozc                  óv   — 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)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¦  «         d S )Nz&armcc supports only cross-compilation.)r   r   r   r   Ú
everythingr   )Úis_crossr   ÚEnvironmentExceptionÚ	warn_argsÚcan_compile_suffixesÚadd)ÚselfÚdefault_warn_argss     úA/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/arm.pyÚ__init__zArmCompiler.__init__R   sr   € ØŒ}ð 	ZÝÔ/Ð0XÑYÔYÐYØÐØ!Ø0Ø0°2Ñ5Ø0°2Ñ5Ø(9¸BÑ(>ð	@ð @ˆŒð 	Ô!×%Ò% cÑ*Ô*Ð*Ð*Ð*ó    úT.List[str]c                ó   — g S ©N© ©r)   s    r+   Úget_pic_argszArmCompiler.get_pic_args^   s   € àˆ	r-   Ú	buildtypeÚstrc                ó   — t           |         S r0   )Úarm_buildtype_args©r)   r4   s     r+   Úget_buildtype_argszArmCompiler.get_buildtype_argsb   s   € Ý! )Ô,Ð,r-   c                ó   — g S r0   r1   r2   s    r+   Úget_always_argszArmCompiler.get_always_argsf   ó   € Øˆ	r-   Ú	outtargetÚoutfilec                ó   — d|d|dgS )Nz--depend_targetz--dependz--depend_single_liner1   ©r)   r=   r>   s      r+   Úget_dependency_gen_argsz#ArmCompiler.get_dependency_gen_argsi   s   € Ø! 9¨j¸'ÐCYÐZÐZr-   Úpch_dirÚheaderc                ó   — g S r0   r1   ©r)   rB   rC   s      r+   Úget_pch_use_argszArmCompiler.get_pch_use_argsl   s	   € ð ˆ	r-   c                ó   — dS )NÚpchr1   r2   s    r+   Úget_pch_suffixzArmCompiler.get_pch_suffixt   s	   € ð
 ˆur-   Úenvú'Environment'c                ó   — g S r0   r1   )r)   rJ   s     r+   Úthread_flagszArmCompiler.thread_flags{   r<   r-   c                ó   — g S r0   r1   r2   s    r+   Úget_coverage_argszArmCompiler.get_coverage_args~   r<   r-   Úoptimization_levelc                ó   — t           |         S r0   )Úarm_optimization_args©r)   rP   s     r+   Úget_optimization_argsz!ArmCompiler.get_optimization_args�   s   € Ý$Ð%7Ô8Ð8r-   Úis_debugÚboolc                ó   — t           |         S r0   r
   ©r)   rU   s     r+   Úget_debug_argszArmCompiler.get_debug_args„   ó   € Ý Ô)Ð)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)   r[   r\   ÚidxÚis        r+   Ú&compute_parameters_with_absolute_pathsz2ArmCompiler.compute_parameters_with_absolute_paths‡   ó‹   € Ý Ñ/Ô/ð 	_ð 	_‰FˆC�Ø��!�Œu˜Š}ˆ}  " 1 "¤¨¢ Ø&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#øàÐr-   N©r    r!   ©r    r.   ©r4   r5   r    r.   ©r=   r5   r>   r5   r    r.   ©rB   r5   rC   r5   r    r.   ©r    r5   )rJ   rK   r    r.   ©rP   r5   r    r.   ©rU   rV   r    r.   ©r[   r.   r\   r5   r    r.   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úidr,   r3   r9   r;   rA   rF   rI   rM   rO   rT   rY   rh   r1   r-   r+   r   r   L   s  € € € € € àCÐCà	€Bð
+ð 
+ð 
+ð 
+ðð ð ð ð-ð -ð -ð -ðð ð ð ð[ð [ð [ð [ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð9ð 9ð 9ð 9ð*ð *ð *ð *ðð ð ð ð ð r-   r   c                  óf   — 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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¦  «         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 r1   r   )Ú.0Úos     r+   ú	<setcomp>z,ArmclangCompiler.__init__.<locals>.<setcomp>ž   s+   € ð 7ð 7ð 7Ø�I�a‰LŒLð7ð 7ð 7r-   )Úb_pchÚb_ltoÚb_pgoÚ
b_sanitizeÚ
b_coverageÚb_ndebugÚb_staticpicÚ
b_coloroutr   )r$   r   r%   Ú
isinstanceÚlinkerr   ÚexelistÚversion_compareÚversionÚbase_optionsr'   r(   r2   s    r+   r,   zArmclangCompiler.__init__–   sÍ   € ØŒ}ð 	]ÝÔ/Ð0[Ñ\Ô\Ð\å˜$œ+Õ'<Ñ=Ô=ð 	nÝÔ/Ð0lÀdÄkÔFYÐ0lÐ0lÐ0lÑmÔmÐmÝÔ'¨¬°d¸T¼[Ô=PÑ6PÑQÔQð 	hÝÔ/Ð0fÑgÔgÐgð7ð 7ð6ð7ñ 7ô 7ˆÔð
 	Ô!×%Ò% cÑ*Ô*Ð*Ð*Ð*r-   r.   c                ó   — g S r0   r1   r2   s    r+   r3   zArmclangCompiler.get_pic_args¥   s	   € ð ˆ	r-   Ú	colortyper5   c                ó,   — t           |         d d …         S r0   r   )r)   r�   s     r+   Úget_colorout_argsz"ArmclangCompiler.get_colorout_argsª   s   € Ý 	Ô*¨1¨1¨1Ô-Ð-r-   r4   c                ó   — t           |         S r0   )Úarmclang_buildtype_argsr8   s     r+   r9   z#ArmclangCompiler.get_buildtype_args­   s   € Ý& yÔ1Ð1r-   c                ó   — dS )NÚgchr1   r2   s    r+   rI   zArmclangCompiler.get_pch_suffix°   s   € Øˆur-   rB   rC   c                ól   — dt           j                             ||                      |¦  «        ¦  «        gS )Nz-include-pch)ra   rb   rd   Úget_pch_namerE   s      r+   rF   z!ArmclangCompiler.get_pch_use_args³   s-   € ð ¥¤§¢¨W°d×6GÒ6GÈÑ6OÔ6OÑ PÔ PÐQÐQr-   r=   r>   c                ó   — dd|d|gS )Nz-MDz-MTz-MFr1   r@   s      r+   rA   z(ArmclangCompiler.get_dependency_gen_args¹   s   € Ø�u˜i¨°Ð8Ð8r-   rP   c                ó   — t           |         S r0   )Úarmclang_optimization_argsrS   s     r+   rT   z&ArmclangCompiler.get_optimization_args¼   s   € Ý)Ð*<Ô=Ð=r-   rU   rV   c                ó   — t           |         S r0   r
   rX   s     r+   rY   zArmclangCompiler.get_debug_args¿   rZ   r-   r[   r\   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 r^   r_   re   s        r+   rh   z7ArmclangCompiler.compute_parameters_with_absolute_pathsÂ   ri   r-   Nrj   rk   )r�   r5   r    r.   rl   ro   rn   rm   rp   rq   rr   )rs   rt   ru   rv   rw   r,   r3   r‘   r9   rI   rF   rA   rT   rY   rh   r1   r-   r+   ry   ry   �   sñ   € € € € € ðð ð 
€Bð+ð +ð +ð +ðð ð ð ð
.ð .ð .ð .ð2ð 2ð 2ð 2ðð ð ð ðRð Rð Rð Rð9ð 9ð 9ð 9ð>ð >ð >ð >ð*ð *ð *ð *ðð ð ð ð ð r-   ry   )Ú
__future__r   ra   ÚtypingÚTÚ r   Úlinkersr   r   Ú	compilersr   Úclangr   ÚTYPE_CHECKINGÚenvironmentr   Úcompilers.compilersr   Úobjectr7   rR   r“   rš   r   ry   r1   r-   r+   ú<module>r¨      sË  ðð #Ð "Ð "Ð "Ð "Ð "à >à 	€	€	€	Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø #Ð #Ð #Ð #Ð #Ð #à„?ð Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ð/ð €Hð ØØØØØðð Ð ð Ø
ˆØ
ˆØ
ˆØ	Ø
�Ð	Ø
ˆðð Ð ð ØØØØØðð Ð ð Ø	Ø
ˆØ
ˆØ
ˆØ
ˆØ
ˆðð Ð ð@ð @ð @ð @ð @�(ñ @ô @ð @ðF8ð 8ð 8ð 8ð 8�xñ 8ô 8ð 8ð 8ð 8r-   