
_rY                 @   sd   d  d l  Z d  d l Z d  d l Z d d l m Z d d l m Z m Z Gd d   d e  Z	 d S)    N   )EnvironmentException   )Compilerjava_buildtype_argsc                   s  e  Z d  Z   f 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 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) d*   Z   S)+JavaCompilerc                s2   d |  _  t   j | |  d |  _ d |  _ d  S)Njavaunknown)languagesuper__init__id
javarunner)selfexelistversion)	__class__ U/mnt/raid6/a/bak/reczko/tools/protein/utils/meson-0.42.1/mesonbuild/compilers/java.pyr      s    		zJavaCompiler.__init__c             C   s   g  S)Nr   )r   prefix
shlib_namesuffixpath	soversionis_shared_moduler   r   r   get_soname_args   s    zJavaCompiler.get_soname_argsc             C   s   d g S)Nz-Werrorr   )r   r   r   r   get_werror_args   s    zJavaCompiler.get_werror_argsc             C   s
   d  | f S)Nr   )r   fnamer   r   r   split_shlib_to_parts"   s    z!JavaCompiler.split_shlib_to_partsc             C   s   g  S)Nr   )r   	build_dirfrom_dirrpath_pathsbuild_rpathinstall_rpathr   r   r   build_rpath_args%   s    zJavaCompiler.build_rpath_argsc             C   s   g  S)Nr   )r   	outtargetoutfiler   r   r   get_dependency_gen_args(   s    z$JavaCompiler.get_dependency_gen_argsc             C   s   |  j  d  d   S)N)r   )r   r   r   r   get_linker_exelist+   s    zJavaCompiler.get_linker_exelistc             C   s   g  S)Nr   )r   r   r   r   get_compile_only_args.   s    z"JavaCompiler.get_compile_only_argsc             C   s%   | d k r d } n  d | d | g S)N z./z-dz-sr   )r   subdirr   r   r   get_output_args1   s    	zJavaCompiler.get_output_argsc             C   s   g  S)Nr   )r   
outputnamer   r   r   get_linker_output_args6   s    z#JavaCompiler.get_linker_output_argsc             C   s   g  S)Nr   )r   r   r   r   get_coverage_args9   s    zJavaCompiler.get_coverage_argsc             C   s   g  S)Nr   )r   r   r   r   get_coverage_link_args<   s    z#JavaCompiler.get_coverage_link_argsc             C   s   g  S)Nr   )r   r   r   r   get_std_exe_link_args?   s    z"JavaCompiler.get_std_exe_link_argsc             C   s   g  S)Nr   )r   r   r   r   r   get_include_argsB   s    zJavaCompiler.get_include_argsc             C   s   g  S)Nr   )r   r   r   r   get_pic_argsE   s    zJavaCompiler.get_pic_argsc             C   s   d j  |  j  S)N )joinr   )r   r   r   r   name_stringH   s    zJavaCompiler.name_stringc             C   s   g  S)Nr   )r   pch_dirheaderr   r   r   get_pch_use_argsK   s    zJavaCompiler.get_pch_use_argsc             C   s   d S)Nr*   r   )r   header_namer   r   r   get_pch_nameN   s    zJavaCompiler.get_pch_namec             C   s   t  | S)N)r   )r   	buildtyper   r   r   get_buildtype_argsQ   s    zJavaCompiler.get_buildtype_argsc          
   C   s  d } d } t  j j | |  } t | d   } | j d  Wd  QXt j |  j | g d | } | j   | j	 d k r t
 d |  j     n  t j |  j  } | r| | g }	 t j |	 d | }
 |
 j   |
 j	 d k rt
 d |  j     qn d	 } t
 |   d  S)
NzSanityCheck.javaZSanityCheckwzPclass SanityCheck {
  public static void main(String[] args) {
    int i;
  }
}
cwdr   z*Java compiler %s can not compile programs.z9Executables created by Java compiler %s 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.)osr   r5   openwrite
subprocessPopenr   wait
returncoder   r6   shutilwhichr   )r   work_direnvironmentsrcobjsource_nameofilepcZrunnercmdlistpemr   r   r   sanity_checkT   s&    

zJavaCompiler.sanity_checkc             C   s   d S)NFr   )r   r   r   r   needs_static_linkerr   s    z JavaCompiler.needs_static_linker)__name__
__module____qualname__r   r   r   r   r$   r'   r(   r)   r,   r.   r/   r0   r1   r2   r3   r6   r9   r;   r=   rS   rT   r   r   )r   r   r      s*   r   )
os.pathr@   rG   rC   mesonlibr   	compilersr   r   r   r   r   r   r   <module>   s   $