§
    »lacž  ã                  ó    — d dl mZ d dlZd dlZddlmZ ddlm	Z	m
Z
mZ ddlmZmZ ej        rddlmZ dd	lmZ dd
lmZ  G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úmlog)ÚEnvironmentExceptionÚversion_compareÚ	OptionKeyé   )ÚCompilerÚLibType)ÚMachineInfo)ÚEnvironment)ÚMachineChoicec                  óÎ   ‡ — e Zd ZdZdZd4ˆ fd„Zd5d„Zd6d„Zd7d„Zd8d„Z	d9d„Z
d9d„Zd9d„Zd9d„Zd9d„Zd:d„Zd9d„Zd9d„Zd;d „Zd<d#„Zd=d(„Zd>d*„Zej        fd?d1„Zd@d2„Zd@d3„Zˆ xZS )AÚValaCompilerÚvalaÚvalacÚexelistúT.List[str]ÚversionÚstrÚfor_machiner   Úis_crossÚboolÚinfoú'MachineInfo'c                óŽ   •— t          ¦   «                              g |||||¬¦  «         || _        t          d¦  «        h| _        d S )N)r   Ú
b_colorout)ÚsuperÚ__init__r   r   Úbase_options)Úselfr   r   r   r   r   Ú	__class__s         €ú;/usr/lib/python3/dist-packages/mesonbuild/compilers/vala.pyr   zValaCompiler.__init__"   sH   ø€ å‰Œ×Ò˜˜W g¨{¸DÈ8ÐÑTÔTÐTØˆŒÝ& |Ñ4Ô4Ð5ˆÔÐÐó    Úreturnc                ó   — dS )NF© ©r!   s    r#   Úneeds_static_linkerz ValaCompiler.needs_static_linker(   s   € Øˆur$   Úoptimization_levelc                ó   — g S ©Nr'   )r!   r*   s     r#   Úget_optimization_argsz"ValaCompiler.get_optimization_args+   ó   € Øˆ	r$   Úis_debugc                ó   — |rdgng S )Nú--debugr'   )r!   r/   s     r#   Úget_debug_argszValaCompiler.get_debug_args.   s   € Ø&Ð.�	ˆ{ˆ{¨BÐ.r$   Útargetc                ó   — g S r,   r'   )r!   r3   s     r#   Úget_output_argszValaCompiler.get_output_args1   r.   r$   c                ó   — g S r,   r'   r(   s    r#   Úget_compile_only_argsz"ValaCompiler.get_compile_only_args4   r.   r$   c                ó   — g S r,   r'   r(   s    r#   Úget_pic_argszValaCompiler.get_pic_args7   r.   r$   c                ó   — g S r,   r'   r(   s    r#   Úget_pie_argszValaCompiler.get_pie_args:   r.   r$   c                ó   — g S r,   r'   r(   s    r#   Úget_pie_link_argszValaCompiler.get_pie_link_args=   r.   r$   c                ó   — dgS )Nz-Cr'   r(   s    r#   Úget_always_argszValaCompiler.get_always_args@   s	   € Øˆvˆr$   Úwarning_levelc                ó   — g S r,   r'   )r!   r@   s     r#   Úget_warn_argszValaCompiler.get_warn_argsC   r.   r$   c                ó   — dgS )Nz--disable-warningsr'   r(   s    r#   Úget_no_warn_argszValaCompiler.get_no_warn_argsF   s   € Ø$Ð%Ð%r$   c                ó   — dgS )Nz--fatal-warningsr'   r(   s    r#   Úget_werror_argszValaCompiler.get_werror_argsI   s   € Ø"Ð#Ð#r$   Ú	colortypec                ó<   — t          | j        d¦  «        rd|z   gS g S )Nz>=0.37.1z--color=)r   r   )r!   rG   s     r#   Úget_colorout_argszValaCompiler.get_colorout_argsL   s)   € Ý˜4œ<¨Ñ4Ô4ð 	,Ø Ñ*Ð+Ð+Øˆ	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   ||<   |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 )	Né	   z	--girdir=é
   z
--vapidir=é   z--includedir=é   z--metadatadir=)Ú	enumerateÚosÚpathÚnormpathÚjoin)r!   rJ   rK   ÚidxÚis        r#   Ú&compute_parameters_with_absolute_pathsz3ValaCompiler.compute_parameters_with_absolute_pathsQ   sƒ  € å Ñ/Ô/ð 	añ 	a‰FˆC�Ø��!�Œu˜Ò#Ð#Ø&'¨¨¨¤e­b¬g×.>Ò.>½r¼w¿|º|ÈIÐWXÐYZÐY[ÐY[ÔW\Ñ?]Ô?]Ñ.^Ô.^Ñ&^�˜sÑ#Ø��"�Œv˜Ò%Ð%Ø&'¨¨¨¤f­r¬w×/?Ò/?ÅÄÇÂÈYÐXYÐZ\ÐZ]ÐZ]ÔX^Ñ@_Ô@_Ñ/`Ô/`Ñ&`�˜sÑ#Ø��"�Œv˜Ò(Ð(Ø&'¨¨¨¤f­r¬w×/?Ò/?ÅÄÇÂÈYÐXYÐZ\ÐZ]ÐZ]ÔX^Ñ@_Ô@_Ñ/`Ô/`Ñ&`�˜sÑ#Ø��"�ŒvÐ)Ò)Ð)Ø&'¨¨¨¤f­r¬w×/?Ò/?ÅÄÇÂÈYÐXYÐZ\ÐZ]ÐZ]ÔX^Ñ@_Ô@_Ñ/`Ô/`Ñ&`�˜sÑ#ùàÐr$   Úwork_dirÚenvironmentú'Environment'ÚNonec                óÀ  — d}g }||j                              | j        | j        ¦  «        z  }| j        r||                      ¦   «         z  }n(||j                              | j        | j        ¦  «        z  }|                      ||j         |d¬¦  «        5 }|j        dk    r'd|  	                    ¦   «         ›d�}t          |¦  «        ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz#class MesonSanityCheck : Object { }Úcompile©Ú
extra_argsÚmoder   zVala compiler z can not compile programs)ÚcoredataÚget_external_argsr   Úlanguager   r7   Úget_external_link_argsÚcached_compileÚ
returncodeÚname_stringr   )r!   rY   rZ   ÚcodeÚextra_flagsÚpÚmsgs          r#   Úsanity_checkzValaCompiler.sanity_check_   s6  € Ø4ˆØ#%ˆØ�{Ô+×=Ò=¸dÔ>NÐPTÔP]Ñ^Ô^Ñ^ˆØŒ=ð 	hØ˜4×5Ò5Ñ7Ô7Ñ7ˆKˆKà˜;Ô/×FÒFÀtÔGWÐY]ÔYfÑgÔgÑgˆKØ× Ò   {Ô';ÈÐZcÐ ÑdÔdð 	0ÐhiØŒ|˜qÒ Ð ØV t×'7Ò'7Ñ'9Ô'9ÐVÐVÐV�Ý*¨3Ñ/Ô/Ð/ð !ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   Â3CÃCÃCÚ	buildtypec                ó   — |dv rdgS g S )N>   ÚdebugÚminsizeÚdebugoptimizedr1   r'   )r!   rn   s     r#   Úget_buildtype_argszValaCompiler.get_buildtype_argsl   s   € ØÐ>Ð>Ð>Ø�;ÐØˆ	r$   ÚlibnameÚenvÚ
extra_dirsÚlibtyper   úT.Optional[T.List[str]]c                ó  — |rt          |t          ¦  «        r|g}|s…d}g }||j                             | j        | j        ¦  «        z  }d|g}||z  }|                      ||j        |d¬¦  «        5 }|j        dk    r|cd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   |D ]I}	t          j	         
                    |	|dz   ¦  «        }
t          j	                             |
¦  «        r|
gc S ŒJt          j        d|›d|›d	�¦  «         d S )
Nz#class MesonFindLibrary : Object { }z--pkgr^   r_   r   z.vapiz	Searched z and z wasn't found)Ú
isinstancer   rb   rc   r   rd   rf   rg   rR   rS   rU   Úisfiler   rp   )r!   rt   ru   rv   rw   ri   ÚargsÚ	vapi_argsrk   ÚdÚvapis              r#   Úfind_libraryzValaCompiler.find_libraryq   s’  € àð 	&�* ZµÑ5Ô5ð 	&Ø$˜ˆJð ð 	%Ø8ˆDØ "ˆDØ�C”L×2Ò2°4Ô3CÀTÄ]ÑSÔSÑSˆDØ  'Ð*ˆIØ�IÑˆDØ×$Ò$ T¨3¬<ÀDÈyÐ$ÑYÔYð %Ð]^Ø”< 1Ò$Ð$Ø$ð%ð %ð %ð %ñ %ô %ð %ð %Ø$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð ð 	ð 	ˆAÝ”7—<’<  7¨WÑ#4Ñ5Ô5ˆDÝŒw�~Š~˜dÑ#Ô#ð Ø�v���ðåŒ
ÐK˜zÐKÐK°'ÐKÐKÐKÑLÔLÐLØˆts   Á0BÂBÂBc                ó   — g S r,   r'   ©r!   ru   s     r#   Úthread_flagszValaCompiler.thread_flagsˆ   r.   r$   c                ó   — g S r,   r'   r‚   s     r#   Úthread_link_flagszValaCompiler.thread_link_flags‹   r.   r$   )
r   r   r   r   r   r   r   r   r   r   )r%   r   )r*   r   r%   r   )r/   r   r%   r   )r3   r   r%   r   )r%   r   )r@   r   r%   r   )rG   r   r%   r   )rJ   r   rK   r   r%   r   )rY   r   rZ   r[   r%   r\   )rn   r   r%   r   )
rt   r   ru   r[   rv   r   rw   r   r%   rx   )ru   r[   r%   r   )Ú__name__Ú
__module__Ú__qualname__rd   Úidr   r)   r-   r2   r5   r7   r9   r;   r=   r?   rB   rD   rF   rI   rX   rm   rs   r   ÚPREFER_SHAREDr€   rƒ   r…   Ú__classcell__)r"   s   @r#   r   r      sÐ  ø€ € € € € à€HØ	€Bð6ð 6ð 6ð 6ð 6ð 6ðð ð ð ðð ð ð ð/ð /ð /ð /ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð&ð &ð &ð &ð$ð $ð $ð $ðð ð ð ð
ð ð ð ð0ð 0ð 0ð 0ðð ð ð ð )0Ô(=ðð ð ð ð ð.ð ð ð ðð ð ð ð ð ð ð r$   r   )Ú
__future__r   Úos.pathrR   ÚtypingÚTÚ r   Úmesonlibr   r   r   Ú	compilersr
   r   ÚTYPE_CHECKINGÚ	envconfigr   rZ   r   r   r   r'   r$   r#   ú<module>r•      sô   ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gà (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à„?ð )Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø(Ð(Ð(Ð(Ð(Ð(ðoð oð oð oð o�8ñ oô oð oð oð or$   