§
    ûµ”cG  ã                  óº   — d dl mZ d dlZd dl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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 d„ dee¦  «        ZdS )é    )ÚannotationsNé   )ÚEnvironmentExceptioné   )ÚCompilerÚjava_buildtype_args)ÚBasicLinkerIsCompilerMixin)ÚMachineInfo)ÚEnvironment)ÚMachineChoicec                  óº   ‡ — e Zd ZU dZdZdgdgddgddgdœZded<   	 d2d3ˆ fd„Zd4d„Zd5d„Z	d5d„Z
d6d„Zd5d„Zd7d„Zd8d!„Zd9d#„Zd:d&„Zd;d+„Zd<d-„Zd=d/„Zd>d1„Zˆ xZS )?ÚJavaCompilerÚjavaÚunknownú-nowarnz
-Xlint:allz-Xdoclint:all)Ú0Ú1Ú2Ú3zT.Dict[str, T.List[str]]Ú_WARNING_LEVELSNÚexelistúT.List[str]ÚversionÚstrÚfor_machiner   Úinfoú'MachineInfo'Úfull_versionúT.Optional[str]c                ód   •— t          ¦   «                              g |||||¬¦  «         d| _        d S )N)r   r   )ÚsuperÚ__init__Ú
javarunner)Úselfr   r   r   r   r   Ú	__class__s         €ú;/usr/lib/python3/dist-packages/mesonbuild/compilers/java.pyr"   zJavaCompiler.__init__,   s3   ø€ å‰Œ×Ò˜˜W g¨{¸DÈ|ÐÑ\Ô\Ð\Ø ˆŒˆˆó    ÚlevelÚreturnc                ó   — | j         |         S ©N)r   )r$   r(   s     r&   Úget_warn_argszJavaCompiler.get_warn_args1   s   € ØÔ# EÔ*Ð*r'   c                ó   — dgS )Nz-Werror© ©r$   s    r&   Úget_werror_argszJavaCompiler.get_werror_args4   ó
   € Øˆ{Ðr'   c                ó   — dgS )Nr   r.   r/   s    r&   Úget_no_warn_argszJavaCompiler.get_no_warn_args7   r1   r'   Ú
outputnamec                ó   — |dk    rd}d|d|gS )NÚ z./z-dz-sr.   )r$   r4   s     r&   Úget_output_argszJavaCompiler.get_output_args:   s!   € Ø˜ÒÐØˆJØ�j $¨
Ð3Ð3r'   c                ó   — g S r+   r.   r/   s    r&   Úget_pic_argszJavaCompiler.get_pic_args?   ó   € Øˆ	r'   Úpch_dirÚheaderc                ó   — g S r+   r.   )r$   r;   r<   s      r&   Úget_pch_use_argszJavaCompiler.get_pch_use_argsB   r:   r'   Únamec                ó   — dS )Nr6   r.   )r$   r?   s     r&   Úget_pch_namezJavaCompiler.get_pch_nameE   s   € Øˆrr'   Ú	buildtypec                ó   — t           |         S r+   )r   )r$   rB   s     r&   Úget_buildtype_argszJavaCompiler.get_buildtype_argsH   s   € Ý" 9Ô-Ð-r'   Úparameter_listÚ	build_dirc                ó  ‡— t          |¦  «        D ]z\  }}|dv rq|dz   t          |¦  «        k     r[||dz                                 t          j        ¦  «        }ˆfd„|D ¦   «         }t          j                             |¦  «        ||dz   <   Œ{|S )N>   ú-cpú
-classpathú-sourcepathr   c                óŠ   •— g | ]?}t           j                             t           j                             ‰|¦  «        ¦  «        ‘Œ@S r.   )ÚosÚpathÚnormpathÚjoin)Ú.0ÚxrF   s     €r&   ú
<listcomp>zGJavaCompiler.compute_parameters_with_absolute_paths.<locals>.<listcomp>P   s9   ø€ Ð]Ð]Ð]Èa�RœW×-Ò-­b¬g¯lªl¸9ÀaÑ.HÔ.HÑIÔIÐ]Ð]Ð]r'   )Ú	enumerateÚlenÚsplitrL   ÚpathseprO   )r$   rE   rF   ÚidxÚiÚ	path_lists     `   r&   Ú&compute_parameters_with_absolute_pathsz3JavaCompiler.compute_parameters_with_absolute_pathsK   s�   ø€ å Ñ/Ô/ð 	Eð 	E‰FˆC�ØÐ8Ð8Ð8¸SÀ1¹WÅsÈ>ÑGZÔGZÒ=ZÐ=ZØ*¨3°©7Ô3×9Ò9½"¼*ÑEÔE�	Ø]Ð]Ð]Ð]ÐS\Ð]Ñ]Ô]�	Ý*,¬*¯/ª/¸)Ñ*DÔ*D�˜s Q™wÑ'øàÐr'   Ú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	        |gz   |¬¦  «        }| 
                    ¦   «          |j        dk    r%t          d	|                      ¦   «         › d
�¦  «        ‚t          j        | j        ¦  «        }|r`||g}	t          j        |	|¬¦  «        }
|
 
                    ¦   «          |
j        dk    r%t          d|                      ¦   «         › d�¦  «        ‚d S d}t          |¦  «        ‚)NzSanityCheck.javaÚSanityCheckÚwzutf-8)Úencodingz class SanityCheck {
                  public static void main(String[] args) {
                    int i;
                  }
                }
                )Úcwdr   zJava compiler z can not compile programs.z%Executables created by Java compiler z are not runnable.zöJava Virtual Machine wasn't found, but it's needed by Meson. Please install a JRE.
If you have specific needs where this requirement doesn't make sense, please open a bug at https://github.com/mesonbuild/meson/issues/new and tell us all about it.)rL   rM   rO   ÚopenÚwriteÚtextwrapÚdedentÚ
subprocessÚPopenr   ÚwaitÚ
returncoder   Úname_stringÚshutilÚwhichr#   )r$   r[   r\   ÚsrcÚobjÚsource_nameÚofileÚpcÚrunnerÚcmdlistÚpeÚms               r&   Úsanity_checkzJavaCompiler.sanity_checkU   s¨  € Ø ˆØˆÝ”g—l’l 8¨SÑ1Ô1ˆÝ�+˜s¨WÐ5Ñ5Ô5ð 	¸Ø�KŠK�œðñô ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Ô˜dœl¨c¨UÑ2¸ÐAÑAÔAˆØ
�Š‰	Œ	ˆ	ØŒ=˜AÒÐÝ&Ð'f¸×8HÒ8HÑ8JÔ8JÐ'fÐ'fÐ'fÑgÔgÐgÝ”˜dœoÑ.Ô.ˆØð 	*Ø˜s�mˆGÝÔ! '¨xÐ8Ñ8Ô8ˆBØ�GŠG‰IŒIˆIØŒ} Ò!Ð!Ý*Ð+yÐSW×ScÒScÑSeÔSeÐ+yÐ+yÐ+yÑzÔzÐzð "Ð!ð ˆAõ
 ' qÑ)Ô)Ð)s   ·(A+Á+A/Á2A/Úboolc                ó   — dS )NFr.   r/   s    r&   Úneeds_static_linkerz JavaCompiler.needs_static_linkert   s   € Øˆur'   Úoptimization_levelc                ó   — g S r+   r.   )r$   r|   s     r&   Úget_optimization_argsz"JavaCompiler.get_optimization_argsw   r:   r'   Úis_debugc                ó   — |rdgS dgS )Nz-gz-g:noner.   )r$   r   s     r&   Úget_debug_argszJavaCompiler.get_debug_argsz   s   € Øð 	Ø�6ˆMØˆ{Ðr'   r+   )
r   r   r   r   r   r   r   r   r   r   )r(   r   r)   r   )r)   r   )r4   r   r)   r   )r;   r   r<   r   r)   r   )r?   r   r)   r   )rB   r   r)   r   )rE   r   rF   r   r)   r   )r[   r   r\   r]   r)   r^   )r)   ry   )r|   r   r)   r   )r   ry   r)   r   )Ú__name__Ú
__module__Ú__qualname__ÚlanguageÚidr   Ú__annotations__r"   r,   r0   r3   r7   r9   r>   rA   rD   rZ   rx   r{   r~   r�   Ú__classcell__)r%   s   @r&   r   r       s•  ø€ € € € € € à€HØ	€Bð ˆ[Øˆ^Ø˜OÐ,Ø˜OÐ,ð	1ð 1€Oð ð ð ñ ð GKð!ð !ð !ð !ð !ð !ð !ð
+ð +ð +ð +ðð ð ð ðð ð ð ð4ð 4ð 4ð 4ð
ð ð ð ðð ð ð ðð ð ð ð.ð .ð .ð .ðð ð ð ð*ð *ð *ð *ð>ð ð ð ðð ð ð ðð ð ð ð ð ð ð r'   r   )Ú
__future__r   rL   Úos.pathrm   rh   rf   ÚtypingÚTÚmesonlibr   Ú	compilersr   r   Úmixins.islinkerr	   ÚTYPE_CHECKINGÚ	envconfigr
   r\   r   r   r   r.   r'   r&   ú<module>r’      s  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7à„?ð )Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø(Ð(Ð(Ð(Ð(Ð(ð]ð ]ð ]ð ]ð ]Ð-¨xñ ]ô ]ð ]ð ]ð ]r'   