From the project homepage:
Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
Here is a simple template (extracted from tcl-blake3 ) that you can use to build a Stubs-enabled Tcl extension:
# meson.build
project(
'my-extension', 'c',
version : '1.0',
)
shared_library(
'my-extension',
'my-extension.c',
# meson adds --as-needed by default, so we just need to define the macro
c_args : get_option('use_tcl_stubs') ? '-DUSE_TCL_STUBS' : [],
install : true,
dependencies : dependency('tcl'),
)
configure_file(
input : 'pkgIndex.tcl.in',
output : 'pkgIndex.tcl',
configuration : {'VERSION' : meson.project_version()},
install_dir : get_option('libdir'),
)
dtplite = find_program('dtplite')
custom_target('manpage',
output : 'my-extension.n',
input : 'my-extension.man',
command : [dtplite, '-o', '@OUTPUT@', 'nroff', '@INPUT@'],
install : true,
install_dir : join_paths(get_option('mandir'), 'mann'),
)# meson.options
option('use_tcl_stubs', type : 'boolean', value : true, description : 'Use the Tcl stubs mechanism')# pkgIndex.tcl.in package ifneeded my-extension @VERSION@ [list load [file join $dir libmy-extension[info sharedlibextension]] My_extension ]