o
    nc1                     @  sH   d dl mZ d dlmZ d dlZdZdZdZdZdZ	G d	d
 d
eZ
dS )    )annotations)
SampleImplNa  module main;
import std.stdio;

enum PROJECT_NAME = "{project_name}";

int main(string[] args) {{
    if (args.length != 1){{
        writefln("%s takes no arguments.\n", args[0]);
        return 1;
    }}
    writefln("This is project %s.\n", PROJECT_NAME);
    return 0;
}}
zproject('{project_name}', 'd',
    version : '{version}',
    default_options: ['warning_level=3'])

exe = executable('{exe_name}', '{source_name}',
  install : true)

test('basic', exe)
zmodule {module_file};

/* This function will not be exported and is not
 * directly callable by users of this library.
 */
int internal_function() {{
    return 0;
}}

int {function_name}() {{
    return internal_function();
}}
zmodule {module_file}_test;
import std.stdio;
import {module_file};


int main(string[] args) {{
    if (args.length != 1){{
        writefln("%s takes no arguments.\n", args[0]);
        return 1;
    }}
    return {function_name}();
}}
at  project('{project_name}', 'd',
  version : '{version}',
  default_options : ['warning_level=3'])

stlib = static_library('{lib_name}', '{source_file}',
  install : true,
  gnu_symbol_visibility : 'hidden',
)

test_exe = executable('{test_exe_name}', '{test_source_file}',
  link_with : stlib)
test('{test_name}', test_exe)

# Make this library usable as a Meson subproject.
{ltoken}_dep = declare_dependency(
  include_directories: include_directories('.'),
  link_with : stlib)

# Make this library usable from the Dlang
# build system.
dlang_mod = import('dlang')
if find_program('dub', required: false).found()
  dlang_mod.generate_dub_file(meson.project_name().to_lower(), meson.source_root(),
    name : meson.project_name(),
    license: meson.project_license(),
    sourceFiles : '{source_file}',
    description : 'Meson sample project.',
    version : '{version}',
  )
endif
c                      s0   e Zd Z fddZd	ddZd	ddZ  ZS )
DlangProjectc                   s   t    |j| _|j| _d S )N)super__init__nameversion)selfoptions	__class__ home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/templates/dlangtemplates.pyr   k   s   
zDlangProject.__init__returnNonec                 C  sd   t dd| j }|d }t|dddtj| jd tddddtj| j||| j	d	 d S )
N	[^a-z0-9]_.dwutf-8encoding)project_namemeson.build)r   Zexe_namesource_namer   )
resubr   loweropenwritehello_d_templateformathello_d_meson_templater   )r	   lowercase_tokenr   r   r   r   create_executablep   s   zDlangProject.create_executablec           	      C  s   t dd| j }| }|dd d }|d }|}|d }|d }||||||||| j||| jd	}t|d
ddtj	di | t|d
ddt
j	di | tdd
ddtj	di | d S )Nr   r   r      _func_testr   z_test.d)ZutokenZltokenZ
header_dirfunction_namemodule_fileZsource_fileZtest_source_filetest_exe_namer   lib_nameZ	test_namer   r   r   r   r   r   )r   r   r   r   upperr   r   r   lib_d_templater!   lib_d_test_templatelib_d_meson_template)	r	   r#   Zuppercase_tokenr(   r*   Z
lib_m_nameZ
lib_d_nameZtest_d_namekwargsr   r   r   create_libraryz   s.     $zDlangProject.create_library)r   r   )__name__
__module____qualname__r   r$   r1   __classcell__r   r   r   r   r   j   s    

r   )
__future__r   Zmesonbuild.templates.sampleimplr   r   r    r"   r-   r.   r/   r   r   r   r   r   <module>   s   
!