§
    öÜÚcT~  ã                  ón  — 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
mZ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 ddlmZ ddlmZmZ ddlmZmZ ddlm Z  ddlm!Z!m"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- ddl.m/Z/m0Z0m1Z1 ej2        r5ddlm3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl	m=Z= ddl>m?Z? ddl.m@Z@ e1ZAneBZA G d „ d!ee1¦  «        ZC G d"„ d#eA¦  «        ZD G d$„ d%eDe'eC¦  «        ZE G d&„ d'eE¦  «        ZF G d(„ d)eE¦  «        ZG G d*„ d+e-eE¦  «        ZH G d,„ d-eeC¦  «        ZI G d.„ d/e eC¦  «        ZJ G d0„ d1e+eC¦  «        ZK G d2„ d3e+eC¦  «        ZL G d4„ d5e)eC¦  «        ZM G d6„ d7e$eC¦  «        ZN G d8„ d9eE¦  «        ZO G d:„ d;eA¦  «        ZP G d<„ d=eePeC¦  «        ZQ G d>„ d?eDeePeC¦  «        ZR G d@„ dAe%ePeC¦  «        ZS G dB„ dCeS¦  «        ZT G dD„ dEeeC¦  «        ZU G dF„ dGeeC¦  «        ZV G dH„ dIeeC¦  «        ZW G dJ„ dKeeC¦  «        ZX G dL„ dMeeC¦  «        ZY G dN„ dOeY¦  «        ZZdS )Pé    )ÚannotationsNé   )Úcoredata)Úmlog)ÚMesonExceptionÚversion_compareÚ	OptionKeyé   )ÚC_FUNC_ATTRIBUTES)ÚCLikeCompiler)ÚCcrxCompiler)ÚXc16Compiler)ÚCompCertCompiler)Ú
TICompiler)ÚArmCompilerÚArmclangCompiler)ÚMSVCCompilerÚClangClCompiler)ÚGnuCompiler)Úgnu_common_warning_argsÚgnu_c_warning_args)ÚIntelGnuLikeCompilerÚIntelVisualStudioLikeCompiler)ÚClangCompiler)ÚElbrusCompiler)ÚPGICompiler)ÚEmscriptenMixin)Úgnu_winlibsÚmsvc_winlibsÚCompiler)ÚMutableKeyedOptionDictTypeÚKeyedOptionDictType)Ú
Dependency)ÚMachineInfo)ÚEnvironment)ÚDynamicLinker)ÚMachineChoice)ÚExternalProgram)ÚCompileCheckModec                  ó\   ‡ — e Zd Zd+d„ZdZ	 	 	 d,d-d„Zd.d„Zd/d„Zdddœd0d(„Zd1ˆ fd*„Z	ˆ xZ
S )2Ú	CCompilerÚnameÚstrÚreturnc                ó`   — 	 t           |         S # t          $ r t          d|› d�¦  «        ‚w xY w)NzUnknown function attribute "ú")r   ÚKeyErrorr   )Úselfr,   s     ú8/usr/lib/python3/dist-packages/mesonbuild/compilers/c.pyÚattribute_check_funczCCompiler.attribute_check_func;   sL   € ð	IÝ$ TÔ*Ð*øÝð 	Ið 	Ið 	IÝ Ð!GÀÐ!GÐ!GÐ!GÑHÔHÐHð	Iøøøs   ‚ �-ÚcNÚccacheúT.List[str]ÚexelistÚversionÚfor_machiner'   Úis_crossÚboolÚinfoú'MachineInfo'Úexe_wrapperúT.Optional['ExternalProgram']ÚlinkerúT.Optional['DynamicLinker']Úfull_versionúT.Optional[str]c
                ój   — t          j        | |||||||	|¬¦	  «	         t          j        | |¦  «         d S )N)r;   rC   rA   )r    Ú__init__r   ©
r2   r6   r8   r9   r:   r;   r=   r?   rA   rC   s
             r3   rF   zCCompiler.__init__C   sN   € õ
 	Ô˜$ ¨°¸+ÀtØ#+¸,Èvð	Wñ 	Wô 	Wð 	WåÔ˜t [Ñ1Ô1Ð1Ð1Ð1ó    c                ó   — dgS )Nz	-nostdinc© ©r2   s    r3   Úget_no_stdinc_argszCCompiler.get_no_stdinc_argsL   s
   € Øˆ}ÐrH   Úwork_dirÚenvironmentú'Environment'ÚNonec                ó6   — d}|                       ||d|¦  «        S )Nz.int main(void) { int class=0; return class; }
zsanitycheckc.c)Ú_sanity_check_impl)r2   rM   rN   Úcodes       r3   Úsanity_checkzCCompiler.sanity_checkO   s#   € Ø@ˆØ×&Ò& x°Ð>NÐPTÑUÔUÐUrH   ©Ú
extra_argsÚdependenciesÚhnameÚsymbolÚprefixÚenvrV   úIT.Union[None, T.List[str], T.Callable[['CompileCheckMode'], T.List[str]]]rW   ú T.Optional[T.List['Dependency']]úT.Tuple[bool, bool]c               óZ   — |||dœ}d}|                        |j        di |¤Ž|||¬¦  «        S )N)rZ   ÚheaderrY   zò{prefix}
        #include <{header}>
        int main(void) {{
            /* If it's not defined as a macro, try to use as a symbol */
            #ifndef {symbol}
                {symbol};
            #endif
            return 0;
        }}rU   rJ   )ÚcompilesÚformat)	r2   rX   rY   rZ   r[   rV   rW   ÚfargsÚts	            r3   Úhas_header_symbolzCCompiler.has_header_symbolS   sR   € ð "¨U¸fÐEÐEˆðˆð �}Š}˜X˜QœXÐ.Ð.¨Ð.Ð.°À
Ø*6ð ñ 8ô 8ð 	8rH   ú'MutableKeyedOptionDictType'c                óÔ   •— t          ¦   «                              ¦   «         }|                     t          d| j        | j        ¬¦  «        t          j        ddgd¦  «        i¦  «         |S )NÚstd©ÚmachineÚlangzC language standard to useÚnone)ÚsuperÚget_optionsÚupdater	   r:   Úlanguager   ÚUserComboOption©r2   ÚoptsÚ	__class__s     €r3   rn   zCCompiler.get_optionsd   sm   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØ�ŠÝ�e TÔ%5¸D¼MÐJÑJÔJÍHÔLdØ,Ø�ØñMô Mð
ñ 	ô 	ð 	ð ˆrH   )r,   r-   r.   r-   ©NNN©r6   r7   r8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   ©r.   r7   )rM   r-   rN   rO   r.   rP   )rX   r-   rY   r-   rZ   r-   r[   rO   rV   r\   rW   r]   r.   r^   ©r.   rf   )Ú__name__Ú
__module__Ú__qualname__r4   rp   rF   rL   rT   re   rn   Ú__classcell__©rt   s   @r3   r+   r+   :   sÖ   ø€ € € € € ðIð Ið Ið Ið €Hð TXØ7;Ø15ð2ð 2ð 2ð 2ð 2ðð ð ð ðVð Vð Vð Vð swØKOð8ð 8ð 8ð 8ð 8ð 8ð"	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rH   r+   c                  ó0   ‡ — e Zd ZdZdZdZdZdˆ fd„Zˆ xZS )	Ú_ClangCStdsz¥Mixin class for clang based compilers for setting C standards.

    This is used by both ClangCCompiler and ClangClCompiler, as they share
    the same versions
    z>=6.0.0ú>=8.0.0ú>=9.0.0r.   rf   c                ó˜  •— t          ¦   «                              ¦   «         }g d¢}g d¢}t          | j        | j        ¦  «        r|dgz  }|dgz  }t          | j        | j        ¦  «        r|dgz  }|dgz  }t          | j        | j        ¦  «        r|dgz  }|dgz  }d	g|z   |z   |t          d
| j        | j	        ¬¦  «                 _
        |S )N©Úc89Úc99Úc11©Úgnu89Úgnu99Úgnu11Úc17Úgnu17Úc18Úgnu18Úc2xÚgnu2xrl   rh   ri   )rm   rn   r   r9   Ú_C17_VERSIONÚ_C18_VERSIONÚ_C2X_VERSIONr	   r:   rp   Úchoices)r2   rs   Úc_stdsÚg_stdsrt   s       €r3   rn   z_ClangCStds.get_options|   sò   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØ&Ð&Ð&ˆØ,Ð,Ð,ˆõ ˜4œ<¨Ô):Ñ;Ô;ð 	 Ø�u�gÑˆFØ�w�iÑˆFÝ˜4œ<¨Ô):Ñ;Ô;ð 	 Ø�u�gÑˆFØ�w�iÑˆFÝ˜4œ<¨Ô):Ñ;Ô;ð 	 Ø�u�gÑˆFØ�w�iÑˆFØX^ÐW_ÐbhÑWhÐkqÑWqˆ�Y�u dÔ&6¸T¼]ÐKÑKÔKÔLÔTØˆrH   rx   )	ry   rz   r{   Ú__doc__r‘   r’   r“   rn   r|   r}   s   @r3   r   r   p   sX   ø€ € € € € ðð ð €LØ€LØ€Lðð ð ð ð ð ð ð ð ð rH   r   c                  óB   ‡ — e Zd Z	 	 	 	 ddd„Zdˆ fd„Zd d„Zd d„Zˆ xZS )!ÚClangCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   ÚdefinesúT.Optional[T.Dict[str, str]]rC   rD   c                ó®   — t                                | |||||||||
¬¦
  «
         t          j        | |	¦  «         ddg}g ||dgz   |ddgz   dgdœ| _        d S ©N©rA   rC   ú-Wallú-Winvalid-pchú-Wextraú
-Wpedanticz-Weverything©Ú0Ú1Ú2Ú3Ú
everything)r+   rF   r   Ú	warn_args©r2   r6   r8   r9   r:   r;   r=   r?   rA   rš   rC   Údefault_warn_argss               r3   rF   zClangCCompiler.__init__‘   s‘   € õ
 	×Ò˜4 ¨°'¸;ÈÐRVÐXcÐlrð  BNÐñ  	Oô  	Oð  	OÝÔ˜t WÑ-Ô-Ð-Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ)7Ð(8ð	:ð :ˆŒˆˆrH   r.   rf   c                ó>  •— t          ¦   «                              ¦   «         }| j                             ¦   «         s| j                             ¦   «         rI|                     t          d| j        | j        ¬¦  «        t          j
        dt          ¦  «        i¦  «         |S )NÚwinlibsri   ú&Standard Win libraries to link against)rm   rn   r=   Ú
is_windowsÚ	is_cygwinro   r	   r:   rp   r   ÚUserArrayOptionr   rr   s     €r3   rn   zClangCCompiler.get_optionsŸ   s”   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØŒ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	Ø�KŠKÝ˜)¨TÔ-=ÀDÄMÐRÑRÔRÕT\ÔTlØ<ÝñUô Uðñ ô ð ð ˆrH   Úoptionsú'KeyedOptionDictType'c                óž   — g }|t          d| j        | j        ¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S ©Nrh   ri   rl   ú-std=©r	   r:   rp   ÚvalueÚappend©r2   r²   Úargsrh   s       r3   Úget_option_compile_argsz&ClangCCompiler.get_option_compile_argsª   óP   € ØˆØ•i ¨tÔ/?ÀdÄmÐTÑTÔTÔUˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,ØˆrH   c                óF  — | j                              ¦   «         s| j                              ¦   «         rn|t          d| j        | j        ¬¦  «                 j                             ¦   «         }t          |t          ¦  «        sJ ‚|D ]}t          |t          ¦  «        sJ ‚Œ|S g S ©Nr­   ri   )r=   r¯   r°   r	   r:   rp   r¸   ÚcopyÚ
isinstanceÚlistr-   ©r2   r²   ÚlibsÚls       r3   Úget_option_link_argsz#ClangCCompiler.get_option_link_args±   s¢   € ØŒ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	à�9 Y¸Ô8HÈtÌ}Ð]Ñ]Ô]Ô^Ôd×iÒiÑkÔkˆDÝ˜d¥DÑ)Ô)Ð)Ð)Ð)Øð *ð *�Ý! !¥SÑ)Ô)Ð)Ð)Ð)Ð)ØˆKØˆ	rH   ©NNNN©r6   r7   r8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rš   r›   rC   rD   rx   ©r²   r³   r.   r7   )ry   rz   r{   rF   rn   r¼   rÆ   r|   r}   s   @r3   r™   r™   �   sŽ   ø€ € € € € ð TXØ7;Ø9=Ø15ð	:ð :ð :ð :ð :ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð ðð ð ð ð ð ð ð rH   r™   c                  ó   — e Zd ZdZdS )ÚArmLtdClangCCompilerÚarmltdclangN©ry   rz   r{   ÚidrJ   rH   r3   rË   rË   ¼   s   € € € € € à	€B€B€BrH   rË   c                  ó   — e Zd ZdZdZdZdZdS )ÚAppleClangCCompilerz­Handle the differences between Apple Clang and Vanilla Clang.

    Right now this just handles the differences between the versions that new
    C standards were added.
    z>=10.0.0z>=11.0.0N)ry   rz   r{   r—   r‘   r’   r“   rJ   rH   r3   rÐ   rÐ   Á   s)   € € € € € ðð ð €LØ€LØ€L€L€LrH   rÐ   c                  ó$   — e Zd ZdZ	 	 	 	 ddd„ZdS )ÚEmscriptenCCompilerÚ
emscriptenNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rš   r›   rC   rD   c                ó°   — |st          d¦  «        ‚t          |d¦  «        st          d¦  «        ‚t                               | |||||||||	|
¬¦  «         d S )Nz;Emscripten compiler can only be used for cross compilation.z	>=1.39.19z$Meson requires Emscripten >= 1.39.19)r?   rA   rš   rC   )r   r   r™   rF   ©r2   r6   r8   r9   r:   r;   r=   r?   rA   rš   rC   s              r3   rF   zEmscriptenCCompiler.__init__Ò   s‚   € ð
 ð 	`Ý Ð!^Ñ_Ô_Ð_Ý˜w¨Ñ4Ô4ð 	IÝ Ð!GÑHÔHÐHÝ×Ò  f¨g°wÀÈXØ $°+ÀfØ(/¸lð 	 ñ 	Lô 	Lð 	Lð 	Lð 	LrH   rÇ   rÈ   ©ry   rz   r{   rÎ   rF   rJ   rH   r3   rÒ   rÒ   Î   sI   € € € € € à	€Bð TXØ7;Ø9=Ø15ð	Lð Lð Lð Lð Lð Lð LrH   rÒ   c                  ó:   — e Zd ZdZ	 	 	 ddd„Zdd„Zdd„Zdd„ZdS ) ÚArmclangCCompilerz
    Keil armclang
    Nr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                ó¬   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         ddg}
g |
|
dgz   |
ddgz   dgdœ| _        d S r�   )r+   rF   r   r©   ©r2   r6   r8   r9   r:   r;   r=   r?   rA   rC   r«   s              r3   rF   zArmclangCCompiler.__init__å   sŠ   € õ 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ! $Ñ'Ô'Ð'Ø$ oÐ6ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ)7Ð(8ð	:ð :ˆŒˆˆrH   r.   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S )Nrh   ri   )rl   Úc90r…   r†   Úgnu90r‰   rŠ   ©r+   rn   r	   r:   rp   r”   ©r2   rs   Úkeys      r3   rn   zArmclangCCompiler.get_optionsó   sE   € Ý×$Ò$ TÑ*Ô*ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØTÐTÐTˆˆSŒ	ÔØˆrH   r²   r³   c                óž   — g }|t          d| j        | j        ¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S rµ   r·   rº   s       r3   r¼   z)ArmclangCCompiler.get_option_compile_argsù   r½   rH   c                ó   — g S ©NrJ   ©r2   r²   s     r3   rÆ   z&ArmclangCCompiler.get_option_link_args   ó   € Øˆ	rH   ru   rv   rx   rÉ   )ry   rz   r{   r—   rF   rn   r¼   rÆ   rJ   rH   r3   rØ   rØ   à   s€   € € € € € ðð ð
 TXØ7;Ø15ð:ð :ð :ð :ð :ðð ð ð ðð ð ð ðð ð ð ð ð rH   rØ   c                  óL   — e Zd ZdZdZdZ	 	 	 	 d#d$d„Zd%d„Zd&d„Zd&d„Z	d'd"„Z
dS )(ÚGnuCCompilerr€   r�   z>=3.4.0Nr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rš   r›   rC   rD   c                ó`  — t                                | |||||||||
¬¦
  «
         t          j        | |	¦  «         dg}t          | j        | j        ¦  «        r|dgz  }g ||dgz   |ddgz   |ddgz   |                      t          ¦  «        z   |                      t          ¦  «        z   dœ| _	        d S )Nrž   rŸ   r    r¡   r¢   r£   )
r+   rF   r   r   r9   Ú_INVALID_PCH_VERSIONÚsupported_warn_argsr   r   r©   rª   s               r3   rF   zGnuCCompiler.__init__
  sì   € õ
 	×Ò˜4 ¨°'¸;ÈÐRVÐXcÐlrð  BNÐñ  	Oô  	Oð  	OÝÔ˜T 7Ñ+Ô+Ð+Ø$˜IÐÝ˜4œ<¨Ô)BÑCÔCð 	3Ø /Ð!2Ñ2ÐØ!Ø0Ø0°I°;Ñ>Ø0°I¸|Ð3LÑLØ):¸iÈÐ=VÑ)VØ)-×)AÒ)AÕBYÑ)ZÔ)Zñ*[à)-×)AÒ)AÕBTÑ)UÔ)Uñ*Vð	Xð XˆŒˆˆrH   r.   rf   c                ó.  — t                                | ¦  «        }g d¢}g d¢}t          | j        | j        ¦  «        r|ddgz  }|ddgz  }t          | j        | j        ¦  «        r|dgz  }|dgz  }t          d	| j        | j        ¬
¦  «        }dg|z   |z   ||         _	        | j
                             ¦   «         s| j
                             ¦   «         rB|                     |                     d¦  «        t          j        dt"          ¦  «        i¦  «         |S )Nrƒ   r‡   r‹   r�   rŒ   rŽ   r�   r�   rh   ri   rl   r­   r®   )r+   rn   r   r9   r’   r“   r	   r:   rp   r”   r=   r¯   r°   ro   Úevolver   r±   r   )r2   rs   r•   r–   rà   s        r3   rn   zGnuCCompiler.get_options  s0  € Ý×$Ò$ TÑ*Ô*ˆØ&Ð&Ð&ˆØ,Ð,Ð,ˆÝ˜4œ<¨Ô):Ñ;Ô;ð 	)Ø�u˜e�nÑ$ˆFØ�w Ð(Ñ(ˆFÝ˜4œ<¨Ô):Ñ;Ô;ð 	 Ø�u�gÑˆFØ�w�iÑˆFÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ#˜H vÑ-°Ñ6ˆˆSŒ	ÔØŒ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	Ø�KŠKØ—
’
˜9Ñ%Ô%¥xÔ'?Ø<Ýñ(ô (ðñ ô ð ð ˆrH   r²   r³   c                óž   — g }|t          d| j        | j        ¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S )Nrh   ©rk   rj   rl   r¶   )r	   rp   r:   r¸   r¹   rº   s       r3   r¼   z$GnuCCompiler.get_option_compile_args1  sP   € ØˆØ•i ¨D¬MÀ4ÔCSÐTÑTÔTÔUˆØŒ9˜ÒÐØ�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,ØˆrH   c                óF  — | j                              ¦   «         s| j                              ¦   «         rn|t          d| j        | j        ¬¦  «                 j                             ¦   «         }t          |t          ¦  «        sJ ‚|D ]}t          |t          ¦  «        sJ ‚Œ|S g S )Nr­   rî   )r=   r¯   r°   r	   rp   r:   r¸   rÀ   rÁ   rÂ   r-   rÃ   s       r3   rÆ   z!GnuCCompiler.get_option_link_args8  s£   € ØŒ9×ÒÑ!Ô!ð 	 T¤Y×%8Ò%8Ñ%:Ô%:ð 	à '­	°)À$Ä-ÐY]ÔYiÐ(jÑ(jÔ(jÔ kÔ q× vÒ vÑ xÔ xˆDÝ˜d¥DÑ)Ô)Ð)Ð)Ð)Øð *ð *�Ý! !¥SÑ)Ô)Ð)Ð)Ð)Ð)ØˆKØˆ	rH   Úpch_dirr`   c                óF   — ddt           j                             |¦  «        gS )Nz-fpch-preprocessz-include)ÚosÚpathÚbasename)r2   rð   r`   s      r3   Úget_pch_use_argszGnuCCompiler.get_pch_use_argsB  s   € Ø" Jµ´×0@Ò0@ÀÑ0HÔ0HÐIÐIrH   rÇ   rÈ   rx   rÉ   )rð   r-   r`   r-   r.   r7   )ry   rz   r{   r’   r“   ré   rF   rn   r¼   rÆ   rõ   rJ   rH   r3   rç   rç     s¨   € € € € € à€LØ€LØ$Ðð TXØ7;Ø9=Ø15ð	Xð Xð Xð Xð Xð$ð ð ð ð*ð ð ð ðð ð ð ðJð Jð Jð Jð Jð JrH   rç   c                  ó   — e Zd Z	 	 	 ddd„ZdS )ÚPGICCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S ©Nrž   ©r+   rF   r   rG   s
             r3   rF   zPGICCompiler.__init__G  óP   € õ 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ˜TÑ"Ô"Ð"Ð"Ð"rH   ru   rv   )ry   rz   r{   rF   rJ   rH   r3   r÷   r÷   F  s6   € € € € € àSWØ7;Ø15ð#ð #ð #ð #ð #ð #ð #rH   r÷   c                  ó"   — e Zd ZdZ	 	 	 ddd„ZdS )ÚNvidiaHPC_CCompilerÚ
nvidia_hpcNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   rú   rG   s
             r3   rF   zNvidiaHPC_CCompiler.__init__T  rû   rH   ru   rv   rÖ   rJ   rH   r3   rý   rý   P  s?   € € € € € à	€Bð TXØ7;Ø15ð#ð #ð #ð #ð #ð #ð #rH   rý   c                  óB   ‡ — e Zd Z	 	 	 	 d$d%d„Zd&d„Zdddœd'ˆ fd#„Zˆ xZS )(ÚElbrusCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rš   r›   rC   rD   c                óv   — t                                | |||||||||
¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rÕ   s              r3   rF   zElbrusCCompiler.__init__^  sP   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ Ñ%Ô%Ð%Ð%Ð%rH   r.   rf   c                ó°  — t                                | ¦  «        }g d¢}|g d¢z  }t          | j        d¦  «        r|ddgz  }t          | j        d¦  «        rt          | j        d¦  «        r|g d¢z  }t          | j        d	¦  «        r|g d¢z  }t          | j        d
¦  «        r|g d¢z  }dg|z   |t	          d| j        | j        ¬¦  «                 _        |S )N)r„   Úc9xr…   rˆ   Úgnu9xr‰   )ziso9899:1990ziso9899:199409ziso9899:1999z	>=1.20.00r†   rŠ   z	>=1.21.00z<1.22.00)rÜ   Úc1xrÝ   Úgnu1xziso9899:2011z	>=1.23.00z	>=1.26.00)r‹   r�   ziso9899:2017ziso9899:2018rŒ   rŽ   rl   rh   ri   ©r+   rn   r   r9   r	   r:   rp   r”   )r2   rs   Ústdss      r3   rn   zElbrusCCompiler.get_optionsg  s
  € Ý×$Ò$ TÑ*Ô*ˆØ?Ð?Ð?ˆØÐBÐBÐBÑBˆÝ˜4œ<¨Ñ5Ô5ð 	%Ø�U˜GÐ$Ñ$ˆDÝ˜4œ<¨Ñ5Ô5ð 	E½/È$Ì,ÐXbÑ:cÔ:cð 	EØÐDÐDÐDÑDˆDÝ˜4œ<¨Ñ5Ô5ð 	EØÐDÐDÐDÑDˆDÝ˜4œ<¨Ñ5Ô5ð 	UØÐTÐTÐTÑTˆDØX^ÐW_ÐbfÑWfˆ�Y�u dÔ&6¸T¼]ÐKÑKÔKÔLÔTØˆrH   rU   ÚfuncnamerZ   r[   rO   rV   úT.Optional[T.List[str]]rW   r]   r^   c               ó`   •— |dk    rdS t          ¦   «                              |||||¬¦  «        S )NÚlchmod)FFrU   )rm   Úhas_function)r2   r
  rZ   r[   rV   rW   rt   s         €r3   r  zElbrusCCompiler.has_functionx  sE   ø€ ð �xÒÐØ�<å‘7”7×'Ò'¨°&¸#Ø3=Ø5Að (ñ Cô Cð CrH   rÇ   rÈ   rx   )r
  r-   rZ   r-   r[   rO   rV   r  rW   r]   r.   r^   )ry   rz   r{   rF   rn   r  r|   r}   s   @r3   r  r  ]  s•   ø€ € € € € àSWØ7;Ø9=Ø15ð	&ð &ð &ð &ð &ðð ð ð ð$ <@ØFJðCð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð CrH   r  c                  ó.   — e Zd Z	 	 	 ddd„Zdd„Zdd„ZdS )ÚIntelCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óÊ   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d| _        ddg}
g |
dgz   |
ddgz   |
ddgz   |
dgz   dœ| _        d S )Nrž   zc-headerrŸ   z-w3z-diag-disable:remarkr¡   r£   )r+   rF   r   Úlang_headerr©   rÚ   s              r3   rF   zIntelCCompiler.__init__„  s¦   € õ 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ% dÑ+Ô+Ð+Ø%ˆÔØ$ eÐ,ÐØ!Ø0Ð4JÐ3KÑKØ0°IÐ?UÐ3VÑVØ0°IÐ?UÐ3VÑVØ(9¸Y¸KÑ(Gð	Ið IˆŒˆˆrH   r.   rf   c                óÜ   — t                                | ¦  «        }ddg}ddg}t          | j        d¦  «        r|dgz  }dg|z   |z   |t	          d| j        | j        ¬	¦  «                 _        |S )
Nr„   r…   rˆ   r‰   z>=16.0.0r†   rl   rh   ri   r  )r2   rs   r•   r–   s       r3   rn   zIntelCCompiler.get_options“  s}   € Ý×$Ò$ TÑ*Ô*ˆØ˜�ˆØ˜7Ð#ˆÝ˜4œ<¨Ñ4Ô4ð 	Ø�u�gÑˆFØX^ÐW_ÐbhÑWhÐkqÑWqˆ�Y�u dÔ&6¸T¼]ÐKÑKÔKÔLÔTØˆrH   r²   r³   c                óž   — g }|t          d| j        | j        ¬¦  «                 }|j        dk    r|                     d|j        z   ¦  «         |S rµ   r·   rº   s       r3   r¼   z&IntelCCompiler.get_option_compile_argsœ  r½   rH   ru   rv   rx   rÉ   ©ry   rz   r{   rF   rn   r¼   rJ   rH   r3   r  r  ƒ  sc   € € € € € àSWØ7;Ø15ðIð Ið Ið Ið Iðð ð ð ðð ð ð ð ð rH   r  c                  ó   — e Zd ZdZdS )ÚIntelLLVMCCompilerz
intel-llvmNrÍ   rJ   rH   r3   r  r  ¤  s   € € € € € à	€B€B€BrH   r  c                  ó,   ‡ — e Zd ZdZd	ˆ fd„Zd
d„Zˆ xZS )ÚVisualStudioLikeCCompilerMixinz3Shared methods that apply to MSVC-like C compilers.r.   rf   c                óÚ   •— t          ¦   «                              ¦   «         }|                     t          d| j        | j        ¬¦  «        t          j        dt          ¦  «        i¦  «         |S )Nr­   ri   zWindows libs to link against.)	rm   rn   ro   r	   r:   rp   r   r±   r   rr   s     €r3   rn   z*VisualStudioLikeCCompilerMixin.get_options­  si   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØ�ŠÝ�i¨Ô)9ÀÄÐNÑNÔNÕPXÔPhØ/ÝñQô Qð
ñ 	ô 	ð 	ð ˆrH   r²   r³   r7   c                óâ   — t          d| j        | j        ¬¦  «        }||         j                             ¦   «         }t          |t          ¦  «        sJ ‚|D ]}t          |t          ¦  «        sJ ‚Œ|S r¿   )r	   r:   rp   r¸   rÀ   rÁ   rÂ   r-   )r2   r²   rà   rÄ   rÅ   s        r3   rÆ   z3VisualStudioLikeCCompilerMixin.get_option_link_args·  sv   € å˜	¨4Ô+;À$Ä-ÐPÑPÔPˆØ�sŒ|Ô!×&Ò&Ñ(Ô(ˆÝ˜$¥Ñ%Ô%Ð%Ð%Ð%Øð 	&ð 	&ˆAÝ˜a¥Ñ%Ô%Ð%Ð%Ð%Ð%ØˆrH   rx   rÉ   )ry   rz   r{   r—   rn   rÆ   r|   r}   s   @r3   r  r  ©  sW   ø€ € € € € à=Ð=ðð ð ð ð ð ðð ð ð ð ð ð ð rH   r  c                  ó@   ‡ — e Zd ZdZdZ	 	 	 ddd„Zdˆ fd„Zdd„Zˆ xZS ) ÚVisualStudioCCompilerz>=19.28Nr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   Útargetr?   r@   rA   rB   rC   rD   c                óx   — t                                | ||||||||	|
¬¦
  «
         t          j        | |¦  «         d S rù   )r+   rF   r   )r2   r6   r8   r9   r:   r;   r=   r  r?   rA   rC   s              r3   rF   zVisualStudioCCompiler.__init__Æ  sR   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VØ(4ð 	ñ 	6ô 	6ð 	6õ 	Ô˜d FÑ+Ô+Ð+Ð+Ð+rH   r.   rf   c                óV  •— t          ¦   «                              ¦   «         }ddg}g d¢}t          | j        | j        ¦  «        r|dgz  }|ddgz  }t          | j        | j        ¦  «        r|ddgz  }|d	d
gz  }t          d| j        | j        ¬¦  «        }dg|z   |z   ||         _	        |S )Nr„   r…   )rˆ   rÝ   r  r‰   r†   r  rŠ   r‹   r�   rŒ   rŽ   rh   ri   rl   )
rm   rn   r   r9   Ú_C11_VERSIONr‘   r	   r:   rp   r”   )r2   rs   r•   r–   rà   rt   s        €r3   rn   z!VisualStudioCCompiler.get_optionsÐ  sÊ   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆØ˜�ˆð 6Ð5Ð5ˆÝ˜4œ<¨Ô):Ñ;Ô;ð 	)Ø�u�gÑˆFØ�w Ð(Ñ(ˆFÝ˜4œ<¨Ô):Ñ;Ô;ð 	)Ø�u˜e�nÑ$ˆFØ�w Ð(Ñ(ˆFÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ#˜H vÑ-°Ñ6ˆˆSŒ	ÔØˆrH   r²   r³   c                ó$  — g }|t          d| j        | j        ¬¦  «                 }|j                             d¦  «        rt          j        d¦  «         |j        dv r|                     d¦  «         n|j        dv r|                     d¦  «         |S )	Nrh   ri   Úgnuz�cl.exe does not actually support gnu standards, and meson will instead demote to the nearest ISO C standard. This may cause compilation to fail.>   r†   rŠ   r  z/std:c11>   r‹   r�   rŒ   rŽ   z/std:c17)r	   r:   rp   r¸   Ú
startswithr   Úlog_oncer¹   rº   s       r3   r¼   z-VisualStudioCCompiler.get_option_compile_argsá  s    € ØˆØ•i ¨tÔ/?ÀdÄmÐTÑTÔTÔUˆØŒ9×Ò Ñ&Ô&ð 	2ÝŒMð1ñ2ô 2ð 2ð
 Œ9Ð1Ð1Ð1Ø�KŠK˜
Ñ#Ô#Ð#Ð#ØŒYÐ:Ð:Ð:Ø�KŠK˜
Ñ#Ô#Ð#ØˆrH   ru   )r6   r7   r8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r  r-   r?   r@   rA   rB   rC   rD   rx   rÉ   )	ry   rz   r{   r!  r‘   rF   rn   r¼   r|   r}   s   @r3   r  r  Á  s€   ø€ € € € € à€LØ€Lð ?CØ7;Ø15ð	,ð ,ð ,ð ,ð ,ðð ð ð ð ð ð"ð ð ð ð ð ð ð rH   r  c                  ó&   — e Zd Z	 	 	 ddd„Zdd„ZdS )ÚClangClCCompilerNr8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r  r?   r@   rA   rB   rC   rD   c
                óx   — t                                | g ||||||||	¬¦
  «
         t          j        | |¦  «         d S rù   )r+   rF   r   ©
r2   r8   r9   r:   r;   r=   r  r?   rA   rC   s
             r3   rF   zClangClCCompiler.__init__ò  sR   € õ
 	×Ò˜4  W¨g°{ÀHØ °VØ(4ð 	ñ 	6ô 	6ð 	6õ 	Ô   vÑ.Ô.Ð.Ð.Ð.rH   r²   r³   r.   c                óp   — t          d| j        | j        ¬¦  «        }||         j        }|dk    rd|› �gS g S )Nrh   ri   rl   z/clang:-std=)r	   r:   rp   r¸   )r2   r²   rà   rh   s       r3   r¼   z(ClangClCCompiler.get_option_compile_argsü  sF   € Ý˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlÔ ˆØ�&Š=ˆ=Ø( 3Ð(Ð(Ð)Ð)Øˆ	rH   ru   ©r8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r  r-   r?   r@   rA   rB   rC   rD   rÉ   )ry   rz   r{   rF   r¼   rJ   rH   r3   r'  r'  ñ  sM   € € € € € ð ?CØ7;Ø15ð	/ð /ð /ð /ð /ðð ð ð ð ð rH   r'  c                  ó<   ‡ — e Zd ZdZ	 	 	 ddd„Zdˆ fd„Zdd„Zˆ xZS )ÚIntelClCCompilerz!Intel "ICL" compiler abstraction.Nr8   r7   r9   r-   r:   r'   r;   r<   r=   r>   r  r?   r@   rA   rB   rC   rD   c
                óx   — t                                | g ||||||||	¬¦
  «
         t          j        | |¦  «         d S rù   )r+   rF   r   r)  s
             r3   rF   zIntelClCCompiler.__init__  sR   € õ
 	×Ò˜4  W¨g°{ÀHØ °VØ(4ð 	ñ 	6ô 	6ð 	6õ 	&Ô.¨t°VÑ<Ô<Ð<Ð<Ð<rH   r.   rf   c                óž   •— t          ¦   «                              ¦   «         }t          d| j        | j        ¬¦  «        }g d¢||         _        |S ©Nrh   ri   )rl   r„   r…   r†   )rm   rn   r	   r:   rp   r”   )r2   rs   rà   rt   s      €r3   rn   zIntelClCCompiler.get_options  sH   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ9Ð9Ð9ˆˆSŒ	ÔØˆrH   r²   r³   c                óâ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    rt	          j        d¦  «         n(|j        dk    r|                     d|j        z   ¦  «         |S )Nrh   ri   r„   zUICL doesn't explicitly implement c89, setting the standard to 'none', which is close.rl   z/Qstd:)r	   r:   rp   r¸   r   r%  r¹   ©r2   r²   r»   rà   rh   s        r3   r¼   z(IntelClCCompiler.get_option_compile_args  su   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐÝŒMÐqÑrÔrÐrÐrØŒY˜&Ò Ð Ø�KŠK˜ 3¤9Ñ,Ñ-Ô-Ð-ØˆrH   ru   r+  rx   rÉ   )ry   rz   r{   r—   rF   rn   r¼   r|   r}   s   @r3   r-  r-    s|   ø€ € € € € à+Ð+ð ?CØ7;Ø15ð	=ð =ð =ð =ð =ðð ð ð ð ð ðð ð ð ð ð ð ð rH   r-  c                  ó   — e Zd ZdZdS )ÚIntelLLVMClCCompilerzintel-llvm-clNrÍ   rJ   rH   r3   r4  r4  #  s   € € € € € à	€B€B€BrH   r4  c                  ó.   — e Zd Z	 	 	 ddd„Zdd„Zdd„ZdS )ÚArmCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rG   s
             r3   rF   zArmCCompiler.__init__)  sP   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VØ(4ð 	ñ 	6ô 	6ð 	6õ 	Ô˜TÑ"Ô"Ð"Ð"Ð"rH   r.   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S r0  rÞ   rß   s      r3   rn   zArmCCompiler.get_options3  óE   € Ý×$Ò$ TÑ*Ô*ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ9Ð9Ð9ˆˆSŒ	ÔØˆrH   r²   r³   c                ó¢   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d|j        z   ¦  «         |S ©Nrh   ri   rl   z--r·   r2  s        r3   r¼   z$ArmCCompiler.get_option_compile_args9  óT   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜˜sœyÑ(Ñ)Ô)Ð)ØˆrH   ru   rv   rx   rÉ   r  rJ   rH   r3   r6  r6  (  sa   € € € € € ð ?CØ7;Ø15ð	#ð #ð #ð #ð #ðð ð ð ðð ð ð ð ð rH   r6  c                  óf   — e Zd Z	 	 	 d$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 )+ÚCcrxCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rG   s
             r3   rF   zCcrxCCompiler.__init__C  óP   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ˜dÑ#Ô#Ð#Ð#Ð#rH   r.   c                ó   — dgS )Nz-nologorJ   rK   s    r3   Úget_always_argszCcrxCCompiler.get_always_argsM  ó
   € Øˆ{ÐrH   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S ©Nrh   ri   )rl   r„   r…   rÞ   rß   s      r3   rn   zCcrxCCompiler.get_optionsP  óE   € Ý×$Ò$ TÑ*Ô*ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ2Ð2Ð2ˆˆSŒ	ÔØˆrH   c                ó   — g S rã   rJ   rK   s    r3   rL   z CcrxCCompiler.get_no_stdinc_argsV  rå   rH   r²   r³   c                óÔ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d¦  «         n |j        dk    r|                     d¦  «         |S )Nrh   ri   r„   z-lang=cr…   z	-lang=c99r·   r2  s        r3   r¼   z%CcrxCCompiler.get_option_compile_argsY  so   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜	Ñ"Ô"Ð"Ð"ØŒY˜%ÒÐØ�KŠK˜Ñ$Ô$Ð$ØˆrH   c                ó   — g S rã   rJ   rK   s    r3   Úget_compile_only_argsz#CcrxCCompiler.get_compile_only_argsc  rå   rH   c                ó   — dgS )Nz-optimize=0rJ   rK   s    r3   Úget_no_optimization_argsz&CcrxCCompiler.get_no_optimization_argsf  s
   € ØˆÐrH   r  c                ó   — d|› �gS )Nz-output=obj=rJ   ©r2   r  s     r3   Úget_output_argszCcrxCCompiler.get_output_argsi  s   € Ø'˜vÐ'Ð'Ð(Ð(rH   c                ó   — dgS ©Nz-change_message=errorrJ   rK   s    r3   Úget_werror_argszCcrxCCompiler.get_werror_argsl  ó   € Ø'Ð(Ð(rH   ró   Ú	is_systemc                ó   — |dk    rd}d|z   gS )NÚ ú.z	-include=rJ   ©r2   ró   rT  s      r3   Úget_include_argszCcrxCCompiler.get_include_argso  s   € Ø�2Š:ˆ:ØˆDØ˜dÑ"Ð#Ð#rH   ru   rv   rw   rx   rÉ   ©r  r-   r.   r7   ©ró   r-   rT  r<   r.   r7   )ry   rz   r{   rF   rB  rn   rL   r¼   rJ  rL  rO  rR  rY  rJ   rH   r3   r>  r>  B  sí   € € € € € ð ?CØ7;Ø15ð	$ð $ð $ð $ð $ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð)ð )ð )ð )ð)ð )ð )ð )ð$ð $ð $ð $ð $ð $rH   r>  c                  ó^   — e Zd Z	 	 	 d#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 )*ÚXc16CCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rG   s
             r3   rF   zXc16CCompiler.__init__v  r@  rH   r.   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S )Nrh   ri   )rl   r„   r…   rˆ   r‰   rÞ   rß   s      r3   rn   zXc16CCompiler.get_options  sE   € Ý×$Ò$ TÑ*Ô*ˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØDÐDÐDˆˆSŒ	ÔØˆrH   c                ó   — g S rã   rJ   rK   s    r3   rL   z Xc16CCompiler.get_no_stdinc_args…  rå   rH   r²   r³   c                óÌ   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r2|                     d¦  «         |                     d|j        z   ¦  «         |S )Nrh   ri   rl   z-ansir¶   r·   r2  s        r3   r¼   z%Xc16CCompiler.get_option_compile_argsˆ  sf   € ØˆÝ˜ tÔ'7¸d¼mÐLÑLÔLˆØ�cŒlˆØŒ9˜ÒÐØ�KŠK˜Ñ Ô Ð Ø�KŠK˜ #¤)Ñ+Ñ,Ô,Ð,ØˆrH   c                ó   — g S rã   rJ   rK   s    r3   rJ  z#Xc16CCompiler.get_compile_only_args‘  rå   rH   c                ó   — dgS ©Nz-O0rJ   rK   s    r3   rL  z&Xc16CCompiler.get_no_optimization_args”  ó	   € ØˆwˆrH   r  c                ó   — d|› �gS ©Nz-orJ   rN  s     r3   rO  zXc16CCompiler.get_output_args—  ó   € Ø�V��ˆÐrH   c                ó   — dgS rQ  rJ   rK   s    r3   rR  zXc16CCompiler.get_werror_argsš  rS  rH   ró   rT  c                ó   — |dk    rd}d|z   gS ©NrV  rW  z-IrJ   rX  s      r3   rY  zXc16CCompiler.get_include_args�  ó   € Ø�2Š:ˆ:ØˆDØ�t‘ˆ}ÐrH   ru   rv   rx   rw   rÉ   rZ  r[  )ry   rz   r{   rF   rn   rL   r¼   rJ  rL  rO  rR  rY  rJ   rH   r3   r]  r]  u  sÙ   € € € € € ð ?CØ7;Ø15ð	$ð $ð $ð $ð $ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð)ð )ð )ð )ðð ð ð ð ð rH   r]  c                  óN   — e Zd Z	 	 	 d!d"d„Zd#d„Zd$d„Zd%d„Zd&d„Zd%d„Zd'd „Z	dS )(ÚCompCertCCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rG   s
             r3   rF   zCompCertCCompiler.__init__£  sP   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ! $Ñ'Ô'Ð'Ð'Ð'rH   r.   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S rE  rÞ   rß   s      r3   rn   zCompCertCCompiler.get_options¬  rF  rH   r²   r³   c                ó   — g S rã   rJ   rä   s     r3   r¼   z)CompCertCCompiler.get_option_compile_args²  rå   rH   c                ó   — dgS rd  rJ   rK   s    r3   rL  z*CompCertCCompiler.get_no_optimization_argsµ  re  rH   r  c                ó   — d|› �gS rg  rJ   rN  s     r3   rO  z!CompCertCCompiler.get_output_args¸  rh  rH   c                ó   — dgS )Nz-WerrorrJ   rK   s    r3   rR  z!CompCertCCompiler.get_werror_args»  rC  rH   ró   rT  c                ó   — |dk    rd}d|z   gS rk  rJ   rX  s      r3   rY  z"CompCertCCompiler.get_include_args¾  rl  rH   ru   rv   rx   rÉ   rw   rZ  r[  )
ry   rz   r{   rF   rn   r¼   rL  rO  rR  rY  rJ   rH   r3   rn  rn  ¢  s±   € € € € € ð ?CØ7;Ø15ð	(ð (ð (ð (ð (ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð rH   rn  c                  ó>   — e Zd Z	 	 	 ddd„Zdd„Zdd„Zdd„Zd d„ZdS )!ÚTICCompilerNr6   r7   r8   r9   r-   r:   r'   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   c
                óv   — t                                | |||||||||	¬¦
  «
         t          j        | ¦  «         d S rù   )r+   rF   r   rG   s
             r3   rF   zTICCompiler.__init__Ä  sP   € õ
 	×Ò˜4 ¨°'¸;ÈØ °VÈ,ð 	ñ 	Xô 	Xð 	XåÔ˜DÑ!Ô!Ð!Ð!Ð!rH   r.   c                ó   — g S rã   rJ   rK   s    r3   rB  zTICCompiler.get_always_argsÎ  rå   rH   rf   c                ó�   — t                                | ¦  «        }t          d| j        | j        ¬¦  «        }g d¢||         _        |S r0  rÞ   rß   s      r3   rn   zTICCompiler.get_optionsÑ  r9  rH   c                ó   — g S rã   rJ   rK   s    r3   rL   zTICCompiler.get_no_stdinc_args×  rå   rH   r²   r³   c                ó¢   — g }t          d| j        | j        ¬¦  «        }||         }|j        dk    r|                     d|j        z   ¦  «         |S r;  r·   r2  s        r3   r¼   z#TICCompiler.get_option_compile_argsÚ  r<  rH   ru   rv   rw   rx   rÉ   )ry   rz   r{   rF   rB  rn   rL   r¼   rJ   rH   r3   rw  rw  Ã  s‰   € € € € € ð ?CØ7;Ø15ð	"ð "ð "ð "ð "ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð rH   rw  c                  ó   — e Zd ZdZdS )ÚC2000CCompilerÚc2000NrÍ   rJ   rH   r3   r~  r~  â  s   € € € € € à	€B€B€BrH   r~  )[Ú
__future__r   Úos.pathrò   ÚtypingÚTrV  r   r   Úmesonlibr   r   r	   Úc_function_attributesr   Úmixins.cliker   Úmixins.ccrxr   Úmixins.xc16r   Úmixins.compcertr   Ú	mixins.tir   Ú
mixins.armr   r   Úmixins.visualstudior   r   Ú
mixins.gnur   r   r   Úmixins.intelr   r   Úmixins.clangr   Úmixins.elbrusr   Ú
mixins.pgir   Úmixins.emscriptenr   Ú	compilersr   r   r    ÚTYPE_CHECKINGr!   r"   rW   r#   Ú	envconfigr$   rN   r%   Úlinkersr&   r'   Úprogramsr(   r)   ÚCompilerMixinBaseÚobjectr+   r   r™   rË   rÐ   rÒ   rØ   rç   r÷   rý   r  r  r  r  r  r'  r-  r4  r6  r>  r]  rn  rw  r~  rJ   rH   r3   ú<module>rš     sÍ  ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ø -Ð -Ð -Ð -Ð -Ð -Ø !Ð !Ð !Ð !Ð !Ð !Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø #Ð #Ð #Ð #Ð #Ð #Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð „?ð ØJÐJÐJÐJÐJÐJÐJÐJØ)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø'Ð'Ð'Ð'Ð'Ð'Ø(Ð(Ð(Ð(Ð(Ð(Ø*Ð*Ð*Ð*Ð*Ð*Ø+Ð+Ð+Ð+Ð+Ð+à ÐÐàÐð3ð 3ð 3ð 3ð 3�˜xñ 3ô 3ð 3ðlð ð ð ð Ð#ñ ô ð ð>*ð *ð *ð *ð *�[ -°ñ *ô *ð *ðZð ð ð ð ˜>ñ ô ð ð

ð 
ð 
ð 
ð 
˜.ñ 
ô 
ð 
ðLð Lð Lð Lð L˜/¨>ñ Lô Lð Lð$!ð !ð !ð !ð !Ð(¨)ñ !ô !ð !ðH?Jð ?Jð ?Jð ?Jð ?J�; 	ñ ?Jô ?Jð ?JðD#ð #ð #ð #ð #�; 	ñ #ô #ð #ð
#ð 
#ð 
#ð 
#ð 
#˜+ yñ 
#ô 
#ð 
#ð#Cð #Cð #Cð #Cð #C�n iñ #Cô #Cð #CðLð ð ð ð Ð)¨9ñ ô ð ðBð ð ð ð ˜ñ ô ð ð
ð ð ð ð Ð%6ñ ô ð ð0-ð -ð -ð -ð -˜LÐ*HÈ)ñ -ô -ð -ð`ð ð ð ð �{ OÐ5SÐU^ñ ô ð ð&ð ð ð ð Ð4Ð6TÐV_ñ ô ð ð>ð ð ð ð Ð+ñ ô ð ð
ð ð ð ð �; 	ñ ô ð ð40$ð 0$ð 0$ð 0$ð 0$�L )ñ 0$ô 0$ð 0$ðf+ð +ð +ð +ð +�L )ñ +ô +ð +ðZð ð ð ð Ð(¨)ñ ô ð ðBð ð ð ð �*˜iñ ô ð ð>ð ð ð ð �[ñ ô ð ð ð rH   