§
    »lac}  ã                  ó
  — d dl mZ d dlZd dl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 ddlmZ ej        rdd	lmZ dd
lmZ ddlmZ g g g dgdgdgdgdœZ G d„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )ÚEnvironmentException)ÚRSPFileSyntaxé   )ÚCompilerÚmono_buildtype_args)ÚBasicLinkerIsCompilerMixin)ÚMachineInfo)ÚEnvironment)ÚMachineChoicez
-optimize+)ÚplainÚ0ÚgÚ1Ú2Ú3Úsc                  ó°   ‡ — e Zd ZdZ	 d,d-ˆ fd„Zed.d„¦   «         Zd/d„Zd/d„Zd0d„Z	d0d„Z
d/d„Zd/d„Zd1d„Zd2d„Zd3d„Zd4d#„Zd5d%„Zd6d'„Zd7d)„Zd8d+„Zˆ xZS )9Ú
CsCompilerÚcsNÚexelistúT.List[str]ÚversionÚstrÚfor_machiner   Úinfoú'MachineInfo'ÚrunnerúT.Optional[str]c                ó`   •— t          ¦   «                              g ||||¦  «         || _        d S ©N)ÚsuperÚ__init__r   )Úselfr   r   r   r   r   Ú	__class__s         €ú9/usr/lib/python3/dist-packages/mesonbuild/compilers/cs.pyr$   zCsCompiler.__init__.   s.   ø€ å‰Œ×Ò˜˜W g¨{¸DÑAÔAÐAØˆŒˆˆó    Úreturnc                ó   — dS )NzC sharp© )Úclss    r'   Úget_display_languagezCsCompiler.get_display_language3   s   € àˆyr(   c                ó   — dgS ©Nz/nologor+   ©r%   s    r'   Úget_always_argszCsCompiler.get_always_args7   ó
   € Øˆ{Ðr(   c                ó   — dgS r/   r+   r0   s    r'   Úget_linker_always_argsz!CsCompiler.get_linker_always_args:   r2   r(   Úfnamec                ó   — d|z   gS )Nz-out:r+   ©r%   r5   s     r'   Úget_output_argszCsCompiler.get_output_args=   s   € Ø˜%‘Ð Ð r(   c                ó   — d|z   gS )Nz-r:r+   r7   s     r'   Úget_link_argszCsCompiler.get_link_args@   s   € Ø˜‘ˆÐr(   c                ó   — dgS )Nz-warnaserrorr+   r0   s    r'   Úget_werror_argszCsCompiler.get_werror_argsC   s   € ØÐÐr(   c                ó   — g S r"   r+   r0   s    r'   Úget_pic_argszCsCompiler.get_pic_argsF   ó   € Øˆ	r(   Úparameter_listÚ	build_dirc           
     ó´  — t          |¦  «        D ]Ç\  }}|d d…         dk    rS|d d…         t          j                             t          j                             ||dd …         ¦  «        ¦  «        z   ||<   |d d…         dk    rS|d d…         t          j                             t          j                             ||dd …         ¦  «        ¦  «        z   ||<   ŒÈ|S )Nr   z-Lé   z-lib:)Ú	enumerateÚosÚpathÚnormpathÚjoin)r%   r@   rA   ÚidxÚis        r'   Ú&compute_parameters_with_absolute_pathsz1CsCompiler.compute_parameters_with_absolute_pathsI   sÒ   € å Ñ/Ô/ð 	_ð 	_‰FˆC�Ø��!�Œu˜Š}ˆ}Ø&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#Ø��!�Œu˜ÒÐØ&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#øàÐr(   Úpch_dirÚheaderc                ó   — g S r"   r+   )r%   rL   rM   s      r'   Úget_pch_use_argszCsCompiler.get_pch_use_argsS   r?   r(   Úheader_namec                ó   — dS )NÚ r+   )r%   rP   s     r'   Úget_pch_namezCsCompiler.get_pch_nameV   s   € Øˆrr(   Úwork_dirÚenvironmentú'Environment'ÚNonec                óô  — d}d}t           j                             ||¦  «        }t          |dd¬¦  «        5 }|                     t          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        | j	        |  
                    ¦   «         z   |gz   |¬¦  «        }|                     ¦   «          |j        dk    r$t          d	|                      ¦   «         z  ¦  «        ‚| j        r
| j        |g}n!t           j                             ||¦  «        g}t          j        ||¬¦  «        }	|	                     ¦   «          |	j        dk    r$t          d
|                      ¦   «         z  ¦  «        ‚d S )Nz	sanity.csz
sanity.exeÚwzutf-8)Úencodingz�
                public class Sanity {
                    static public void Main () {
                    }
                }
                )Úcwdr   z(C# compiler %s can not compile programs.z9Executables created by Mono compiler %s are not runnable.)rE   rF   rH   ÚopenÚwriteÚtextwrapÚdedentÚ
subprocessÚPopenr   r1   ÚwaitÚ
returncoder   Úname_stringr   )
r%   rT   rU   ÚsrcÚobjÚsource_nameÚofileÚpcÚcmdlistÚpes
             r'   Úsanity_checkzCsCompiler.sanity_checkY   s¦  € ØˆØˆÝ”g—l’l 8¨SÑ1Ô1ˆÝ�+˜s¨WÐ5Ñ5Ô5ð 	¸Ø�KŠK�œð )ñ ô ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Ô˜dœl¨T×-AÒ-AÑ-CÔ-CÑCÀsÀeÑKÐQYÐZÑZÔZˆØ
�Š‰	Œ	ˆ	ØŒ=˜AÒÐÝ&Ð'QÐTX×TdÒTdÑTfÔTfÑ'fÑgÔgÐgØŒ;ð 	4Ø”{ CÐ(ˆGˆGå”w—|’| H¨cÑ2Ô2Ð3ˆGÝÔ˜g¨8Ð4Ñ4Ô4ˆØ
�Š‰	Œ	ˆ	ØŒ=˜AÒÐÝ&Ð'bÐei×euÒeuÑewÔewÑ'wÑxÔxÐxð Ðs   ·(A+Á+A/Á2A/Úboolc                ó   — dS )NFr+   r0   s    r'   Úneeds_static_linkerzCsCompiler.needs_static_linkerq   s   € Øˆur(   Ú	buildtypec                ó   — t           |         S r"   )r	   )r%   rp   s     r'   Úget_buildtype_argszCsCompiler.get_buildtype_argst   s   € Ý" 9Ô-Ð-r(   Úis_debugc                ó   — |rdgng S )Nú-debugr+   )r%   rs   s     r'   Úget_debug_argszCsCompiler.get_debug_argsw   s   € Ø%Ð-�ˆzˆz¨2Ð-r(   Úoptimization_levelc                ó   — t           |         S r"   )Úcs_optimization_args)r%   rw   s     r'   Úget_optimization_argsz CsCompiler.get_optimization_argsz   s   € Ý#Ð$6Ô7Ð7r(   r"   )
r   r   r   r   r   r   r   r   r   r    )r)   r   )r)   r   )r5   r   r)   r   )r@   r   rA   r   r)   r   )rL   r   rM   r   r)   r   )rP   r   r)   r   )rT   r   rU   rV   r)   rW   )r)   rm   ©rp   r   r)   r   )rs   rm   r)   r   )rw   r   r)   r   )Ú__name__Ú
__module__Ú__qualname__Úlanguager$   Úclassmethodr-   r1   r4   r8   r:   r<   r>   rK   rO   rS   rl   ro   rr   rv   rz   Ú__classcell__©r&   s   @r'   r   r   *   sŠ  ø€ € € € € à€Hð AEðð ð ð ð ð ð ð
 ðð ð ñ „[ððð ð ð ðð ð ð ð!ð !ð !ð !ðð ð ð ð ð  ð  ð  ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðyð yð yð yð0ð ð ð ð.ð .ð .ð .ð.ð .ð .ð .ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8r(   r   c                  ó,   ‡ — e Zd ZdZdˆ fd
„Zdd„Zˆ xZS )ÚMonoCompilerÚmonor   r   r   r   r   r   r   r   c                óT   •— t          ¦   «                              ||||d¬¦  «         d S )Nr…   )r   )r#   r$   )r%   r   r   r   r   r&   s        €r'   r$   zMonoCompiler.__init__‚   s,   ø€ å‰Œ×Ò˜ '¨;¸ÀVÐÑLÔLÐLÐLÐLr(   r)   ú'RSPFileSyntax'c                ó   — t           j        S r"   )r   ÚGCCr0   s    r'   Úrsp_file_syntaxzMonoCompiler.rsp_file_syntax†   s   € ÝÔ Ð r(   )r   r   r   r   r   r   r   r   ©r)   r‡   )r|   r}   r~   Úidr$   rŠ   r�   r‚   s   @r'   r„   r„   ~   s\   ø€ € € € € à	€BðMð Mð Mð Mð Mð Mð!ð !ð !ð !ð !ð !ð !ð !r(   r„   c                  ó"   — e Zd ZdZd
d„Zdd„Zd	S )ÚVisualStudioCsCompilerÚcscrp   r   r)   r   c                óž   — t           |         }| j                             ¦   «         s&g }|D ]}|dk    rd}|                     |¦  «         Œ |}|S )Nru   z-debug:portable)r	   r   Ú
is_windowsÚappend)r%   rp   ÚresÚtmpÚflags        r'   rr   z)VisualStudioCsCompiler.get_buildtype_argsŽ   se   € Ý! )Ô,ˆØŒy×#Ò#Ñ%Ô%ð 	ØˆCØð !ð !�Ø˜8Ò#Ð#Ø,�DØ—
’
˜4Ñ Ô Ð Ð ØˆCØˆ
r(   r‡   c                ó   — t           j        S r"   )r   ÚMSVCr0   s    r'   rŠ   z&VisualStudioCsCompiler.rsp_file_syntax™   s   € ÝÔ!Ð!r(   Nr{   r‹   )r|   r}   r~   rŒ   rr   rŠ   r+   r(   r'   rŽ   rŽ   Š   sA   € € € € € à	€Bð	ð 	ð 	ð 	ð"ð "ð "ð "ð "ð "r(   rŽ   )Ú
__future__r   Úos.pathrE   r`   r^   ÚtypingÚTÚmesonlibr   Úlinkersr   Ú	compilersr   r	   Úmixins.islinkerr
   ÚTYPE_CHECKINGÚ	envconfigr   rU   r   r   ry   r   r„   rŽ   r+   r(   r'   ú<module>r¢      s”  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à„?ð )Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø(Ð(Ð(Ð(Ð(Ð(ð "$ØØØ*˜^Ø*˜^Ø*˜^Ø*˜^ðð Ð ðQ8ð Q8ð Q8ð Q8ð Q8Ð+¨Xñ Q8ô Q8ð Q8ðh	!ð 	!ð 	!ð 	!ð 	!�:ñ 	!ô 	!ð 	!ð"ð "ð "ð "ð "˜Zñ "ô "ð "ð "ð "r(   