
?&Y                 @   s\   d  d l  Z d d l m Z d d l m Z m Z d d l m Z Gd d   d e  Z	 d S)	    N   )mlog)EnvironmentExceptionversion_compare   )Compilerc                   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   S)ValaCompilerc                sG   d |  _  t   j | |  | |  _ d |  _ d |  _ d g |  _ d  S)NvalavalacF
b_colorout)languagesuper__init__versionidis_crossbase_options)selfexelistr   )	__class__ U/mnt/raid6/a/bak/reczko/tools/protein/utils/meson-0.42.1/mesonbuild/compilers/vala.pyr      s    				zValaCompiler.__init__c             C   s   d j  |  j  S)N )joinr   )r   r   r   r   name_string   s    zValaCompiler.name_stringc             C   s   d S)NFr   )r   r   r   r   needs_static_linker"   s    z ValaCompiler.needs_static_linkerc             C   s
   d | g S)Nz-or   )r   targetr   r   r   get_output_args%   s    zValaCompiler.get_output_argsc             C   s   d g S)Nz-Cr   )r   r   r   r   get_compile_only_args(   s    z"ValaCompiler.get_compile_only_argsc             C   s   g  S)Nr   )r   r   r   r   get_pic_args+   s    zValaCompiler.get_pic_argsc             C   s   d g S)Nz-Cr   )r   r   r   r   get_always_args.   s    zValaCompiler.get_always_argsc             C   s   g  S)Nr   )r   warning_levelr   r   r   get_warn_args1   s    zValaCompiler.get_warn_argsc             C   s   d g S)Nz--disable-warningsr   )r   r   r   r   get_no_warn_args4   s    zValaCompiler.get_no_warn_argsc             C   s   d g S)Nz--fatal-warningsr   )r   r   r   r   get_werror_args7   s    zValaCompiler.get_werror_argsc             C   s!   t  |  j d  r d | g Sg  S)Nz>=0.37.1z--color=)r   r   )r   	colortyper   r   r   get_colorout_args:   s    zValaCompiler.get_colorout_argsc          	   C   sp   d } |  j  | d d } |  j | | d  : } | j d k rf d j |  j    } t |   n  Wd  QXd  S)Nz#class MesonSanityCheck : Object { }linkFcompiler   z+Vala compiler {!r} can not compile programs)get_cross_extra_flagsr(   
returncodeformatr   r   )r   work_direnvironmentcodeargspmsgr   r   r   sanity_check?   s    zValaCompiler.sanity_checkc             C   s/   | d k s$ | d k s$ | d k r+ d g Sg  S)Ndebugdebugoptimizedminsizez--debugr   )r   	buildtyper   r   r   get_buildtype_argsH   s    $zValaCompiler.get_buildtype_argsc       
      C   s   | r! t  | t  r! | g } n  | s d } d | g } |  j | d d } | | 7} |  j | | d   } | j d k r | SWd  QXn  x@ | D]8 } t j j | | d  }	 t j j |	  r |	 g Sq Wt	 j
 d j | |   d  S)	Nz#class MesonFindLibrary : Object { }z--pkgr'   Fr(   r   z.vapiz#Searched {!r} and {!r} wasn't found)
isinstancestrr)   r(   r*   ospathr   isfiler   r3   r+   )
r   libnameenv
extra_dirsr.   Z	vapi_argsr/   r0   dvapir   r   r   find_libraryM   s     
zValaCompiler.find_library)__name__
__module____qualname__r   r   r   r   r   r   r    r"   r#   r$   r&   r2   r7   rB   r   r   )r   r   r      s   	r   )
os.pathr:    r   mesonlibr   r   	compilersr   r   r   r   r   r   <module>   s   