o
    uJAf                     @  s<   d dl mZ d dlZejrddlmZ dZdZdddZ	dS )    )annotationsN   )	Argumentszproject('{project_name}', {language},
  version : '{version}',
  default_options : [{default_options}])

executable('{executable}',
           {sourcespec},{depspec}
           install : true)
zproject('{project_name}', '{language}',
  version : '{version}',
  default_options : [{default_options}])

jar('{executable}',
    {sourcespec},{depspec}
    main_class: '{main_class}',
    install : true)
optionsr   returnNonec              
   C  s  | j dkr	tddg}| jdkr|dg7 }ddd |D }d	d
d | jD }d}| jrFd}|ddd | jdD 7 }|d7 }| jdkrk| jdkrWd| j dnddg}tj| j	|| j
| j|||d}ntj| j	| j| j
| j| j	|||d}tdddd| td|  d S )N
executablez
Generating a meson.build file from existing sources is
supported only for project type "executable".
Run meson init in an empty directory to create a sample project.zwarning_level=3cppzcpp_std=c++14z, c                 s      | ]	}d | d V  qdS 'N .0xr   r   H/usr/lib/python3.10/site-packages/mesonbuild/templates/mesontemplates.py	<genexpr>5       z%create_meson_build.<locals>.<genexpr>z,
           c                 s  r
   r   r   r   r   r   r   r   6   r    z+
           dependencies : [
              z,
              c                 s  s    | ]	}d | dV  qdS )zdependency('z')Nr   r   r   r   r   r   :   s    ,z],javavalar   c)project_namelanguageversionr   
sourcespecdepspecdefault_options)r   r   r   r   
main_classr   r   r   zmeson.buildwzutf-8)encodingzGenerated meson.build file:

)type
SystemExitr   joinsrcfilesdepssplitmeson_executable_templateformatnamer   r   meson_jar_templateopenwriteprint)r   r   Zformatted_default_optionsr   r   r   contentr   r   r   create_meson_build*   sF   





 r0   )r   r   r   r   )

__future__r   typingTTYPE_CHECKINGminitr   r(   r+   r0   r   r   r   r   <module>   s   
