
    -Ph                        U 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 ddlmZ ej        rddlmZ dd	lmZ dd
l	mZ dgdgdZded<    G d dee          ZdS )    )annotationsN   )EnvironmentException   )Compiler)BasicLinkerIsCompilerMixin)MachineInfo)Environment)MachineChoicez-g:nonez-g)FTzT.Dict[bool, T.List[str]]java_debug_argsc                       e Zd ZU dZdZdgdgddgddgdZded<   	 d/d0 fdZd1dZd2dZ	d3dZ
d2dZd4dZd5d Zd6d#Zd7d(Zd8d*Zd9d,Zd:d.Z xZS );JavaCompilerjavaunknownz-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         Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/compilers/java.pyr!   zJavaCompiler.__init__(   s3    Wg{D|\\\     levelreturnc                    | j         |         S N)r   )r#   r'   s     r%   get_warn_argszJavaCompiler.get_warn_args-   s    #E**r&   c                    dgS )Nz-Werror r#   s    r%   get_werror_argszJavaCompiler.get_werror_args0   s
    {r&   
outputnamec                    |dk    rd}d|d|gS )N z./z-dz-sr-   )r#   r0   s     r%   get_output_argszJavaCompiler.get_output_args3   s!    Jj$
33r&   c                    g S r*   r-   r.   s    r%   get_pic_argszJavaCompiler.get_pic_args8       	r&   pch_dirheaderc                    g S r*   r-   )r#   r7   r8   s      r%   get_pch_use_argszJavaCompiler.get_pch_use_args;   r6   r&   namec                    dS )Nr2   r-   )r#   r;   s     r%   get_pch_namezJavaCompiler.get_pch_name>   s    rr&   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>   
-classpath-sourcepath-cpr   c                    g | ]?}t           j                            t           j                            |                    @S r-   )ospathnormpathjoin).0xr?   s     r%   
<listcomp>zGJavaCompiler.compute_parameters_with_absolute_paths.<locals>.<listcomp>F   s9    ]]]aRW--bgll9a.H.HII]]]r&   )	enumeratelensplitrE   pathseprH   )r#   r>   r?   idxi	path_lists     `   r%   &compute_parameters_with_absolute_pathsz3JavaCompiler.compute_parameters_with_absolute_pathsA   s    // 	E 	EFC888S1Ws>GZGZ=Z=Z*37399"*EE	]]]]S\]]]	*,*//)*D*DsQw'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                  }|rb|dd|g}	t          j        |	|          }
|

                                 |
j        dk    r%t          d|                                  d          d S d}t          |          )NzSanityCheck.javaSanityCheckwzutf-8)encodingzclass SanityCheck {
                  public static void main(String[] args) {
                    int i;
                  }
                }
                )cwdr   zJava compiler z cannot compile programs.rC   .z%Executables created by Java compiler z are not runnable.zJava 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.)rE   rF   rH   openwritetextwrapdedent
subprocessPopenr   wait
returncoder   name_stringshutilwhichr"   )r#   rT   rU   srcobjsource_nameofilepcrunnercmdlistpems               r%   sanity_checkzJavaCompiler.sanity_checkK   s    gll8S11+sW555 	KK    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dlcU2AAA
			=A&'e8H8H8J8J'e'e'efffdo.. 	*uc3/G!'x888BGGIII}!!*+ySWScScSeSe+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_linkerj   s    ur&   optimization_levelc                    g S r*   r-   )r#   rv   s     r%   get_optimization_argsz"JavaCompiler.get_optimization_argsm   r6   r&   is_debugc                    t           |         S r*   )r   )r#   ry   s     r%   get_debug_argszJavaCompiler.get_debug_argsp   s    x((r&   r*   )
r   r   r   r   r   r   r   r   r   r   )r'   r   r(   r   )r(   r   )r0   r   r(   r   )r7   r   r8   r   r(   r   )r;   r   r(   r   )r>   r   r?   r   r(   r   )rT   r   rU   rV   r(   rW   )r(   rs   )rv   r   r(   r   )ry   rs   r(   r   )__name__
__module____qualname__languageidr   __annotations__r!   r+   r/   r3   r5   r:   r=   rS   rr   ru   rx   r{   __classcell__)r$   s   @r%   r   r      sm        H	B [^O,O,	1 1O     GK! ! ! ! ! ! !
+ + + +   4 4 4 4
            * * * *>      ) ) ) ) ) ) ) )r&   r   )
__future__r   rE   os.pathrg   rb   r`   typingTmesonlibr   	compilersr   mixins.islinkerr   TYPE_CHECKING	envconfigr	   rU   r
   r   r   r   r   r-   r&   r%   <module>r      s;   # " " " " " " 				            + + + + + +       7 7 7 7 7 7? )''''''))))))(((((( ;&. .    
U) U) U) U) U)-x U) U) U) U) U)r&   