§
    ûµ”c€  ã                  óÖ   — d dl mZ 	 d dlZd dlZd dlZej        rd dlmZ ddl	m
Z
 ddlmZ neZdgdd	gdd	gd
gdgdgdœZg dgdgdgdgd
gdgdœZg d	gdœZddgZ G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚMachineInfoé   )ÚEnvironment)ÚCompilerÚ z-O0z-gz-O3z-Osz-Obranchless)ÚplainÚdebugÚdebugoptimizedÚreleaseÚminsizeÚcustomz-O1z-O2)r	   Ú0ÚgÚ1Ú2Ú3Ús)FTz^-ffreestanding$z^-r$c                  ó¢   — e Zd ZdZd$d„Zd%d„Zd%d„Zd&d
„Zd'd„Zd(d„Z	e
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 ).ÚCompCertCompilerÚccompÚreturnÚNonec                ój   — | j                              d¦  «         g }g ||g z   |g z   |g z   dœ| _        d S )Nr   )r   r   r   r   Ú
everything)Úcan_compile_suffixesÚaddÚ	warn_args)ÚselfÚdefault_warn_argss     úF/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/compcert.pyÚ__init__zCompCertCompiler.__init__D   sQ   € àÔ!×%Ò% cÑ*Ô*Ð*ØÐØ!Ø0Ø0°2Ñ5Ø0°2Ñ5Ø(9¸BÑ(>ð	@ð @ˆŒˆˆó    úT.List[str]c                ó   — g S ©N© ©r   s    r!   Úget_always_argsz CompCertCompiler.get_always_argsN   ó   € Øˆ	r#   c                ó   — g S r&   r'   r(   s    r!   Úget_pic_argszCompCertCompiler.get_pic_argsQ   s   € àˆ	r#   Ú	buildtypeÚstrc                ó   — t           |         S r&   )Úccomp_buildtype_args)r   r-   s     r!   Úget_buildtype_argsz#CompCertCompiler.get_buildtype_argsU   s   € Ý# IÔ.Ð.r#   c                ó   — dS )NÚpchr'   r(   s    r!   Úget_pch_suffixzCompCertCompiler.get_pch_suffixX   s   € Øˆur#   Úpch_dirÚheaderc                ó   — g S r&   r'   )r   r5   r6   s      r!   Úget_pch_use_argsz!CompCertCompiler.get_pch_use_args[   r*   r#   ÚargsÚinfor   c                ó¸   — g }|D ]T}d}t           D ]1}t          j        ||¦  «        r|                     d|z   ¦  «         d}Œ2|s|                     |¦  «         ŒU|S )z7Always returns a copy that can be independently mutatedr   z-WUl,é   )Úccomp_args_to_wulÚreÚmatchÚappend)Úclsr9   r:   Úpatched_argsÚargÚaddedÚptrns          r!   Ú_unix_args_to_nativez%CompCertCompiler._unix_args_to_native^   s�   € ð ˆØð 	)ð 	)ˆCØˆEÝ)ð ð �Ý”8˜D #Ñ&Ô&ð Ø ×'Ò'¨°#©Ñ6Ô6Ð6Ø�EøØð )Ø×#Ò# CÑ(Ô(Ð(øØÐr#   Úenvú'Environment'c                ó   — g S r&   r'   )r   rG   s     r!   Úthread_flagszCompCertCompiler.thread_flagsl   r*   r#   c                ó   — dgS )Nz-Er'   r(   s    r!   Úget_preprocess_only_argsz)CompCertCompiler.get_preprocess_only_argso   ó	   € Øˆvˆr#   c                ó   — dgS )Nz-cr'   r(   s    r!   Úget_compile_only_argsz&CompCertCompiler.get_compile_only_argsr   rM   r#   c                ó   — g S r&   r'   r(   s    r!   Úget_coverage_argsz"CompCertCompiler.get_coverage_argsu   r*   r#   c                ó   — dgS )Nz	-nostdincr'   r(   s    r!   Úget_no_stdinc_argsz#CompCertCompiler.get_no_stdinc_argsx   ó
   € Øˆ}Ðr#   c                ó   — dgS )Nz	-nostdlibr'   r(   s    r!   Úget_no_stdlib_link_argsz(CompCertCompiler.get_no_stdlib_link_args{   rT   r#   Úoptimization_levelc                ó   — t           |         S r&   )Úccomp_optimization_args)r   rW   s     r!   Úget_optimization_argsz&CompCertCompiler.get_optimization_args~   s   € Ý&Ð'9Ô:Ð:r#   Úis_debugÚboolc                ó   — t           |         S r&   )Úccomp_debug_args)r   r[   s     r!   Úget_debug_argszCompCertCompiler.get_debug_args�   s   € Ý Ô)Ð)r#   Úparameter_listÚ	build_dirc           
     óò   — t          |¦  «        D ]f\  }}|d d…         dk    rS|d d…         t          j                             t          j                             ||dd …         ¦  «        ¦  «        z   ||<   Œg|S )Né	   z-I)Ú	enumerateÚosÚpathÚnormpathÚjoin)r   r`   ra   ÚidxÚis        r!   Ú&compute_parameters_with_absolute_pathsz7CompCertCompiler.compute_parameters_with_absolute_paths„   s{   € Ý Ñ/Ô/ð 	_ð 	_‰FˆC�Ø��!�Œu˜Š}ˆ}Ø&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#øàÐr#   N)r   r   )r   r$   )r-   r.   r   r$   )r   r.   )r5   r.   r6   r.   r   r$   )r9   r$   r:   r   r   r$   )rG   rH   r   r$   )rW   r.   r   r$   )r[   r\   r   r$   )r`   r$   ra   r.   r   r$   )Ú__name__Ú
__module__Ú__qualname__Úidr"   r)   r,   r1   r4   r8   ÚclassmethodrF   rJ   rL   rO   rQ   rS   rV   rZ   r_   rk   r'   r#   r!   r   r   @   si  € € € € € à	€Bð@ð @ð @ð @ðð ð ð ðð ð ð ð/ð /ð /ð /ðð ð ð ðð ð ð ð ðð ð ñ „[ððð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð;ð ;ð ;ð ;ð*ð *ð *ð *ðð ð ð ð ð r#   r   )Ú
__future__r   re   r>   ÚtypingÚTÚTYPE_CHECKINGÚ	envconfigr   Úenvironmentr   Úcompilers.compilersr   Úobjectr0   rY   r^   r=   r   r'   r#   r!   ú<module>ry      sK  ðð #Ð "Ð "Ð "Ð "Ð "à Aà 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð à„?ð 	Ø%Ð%Ð%Ð%Ð%Ð%Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ð/ð €Hð ˆTØ�Tˆ]Ø˜d�mØˆwØˆwØÐðð Ð ð Ø
ˆØ
ˆØ
ˆØ
ˆØ
ˆØ
ˆðð Ð ð Øˆ&ðð Ð ð 	ØðÐ ð
Ið Ið Ið Ið I�xñ Iô Ið Ið Ið Ir#   