1. add pydantic based decorator, that checks typing for incoming arguments; 1.1. helps when some wrapping decorator uses *args, **kwargs, since pyright just ignores what happens after wards;
88 lines
1.6 KiB
Meson
88 lines
1.6 KiB
Meson
project(
|
|
run_command(
|
|
'tomlq', '-r', '.project.name', 'pyproject.toml',
|
|
check: true
|
|
).stdout().strip('\n'),
|
|
# 'online.fxreader.uv',
|
|
# ['c', 'cpp'],
|
|
version: '0.1.5.17+27.22',
|
|
# default_options: [
|
|
# 'cpp_std=c++23',
|
|
# # 'prefer_static=true',
|
|
# ],
|
|
)
|
|
|
|
install_path = get_option('install_path')
|
|
message('install_path = ' + install_path)
|
|
|
|
modes = get_option('modes')
|
|
|
|
fs = import('fs')
|
|
|
|
assert(modes.length() == 1, 'only one mode allowed')
|
|
|
|
mode = modes[0]
|
|
|
|
|
|
project_root = '.'
|
|
source_dir = project_root
|
|
include_dir = project_root
|
|
|
|
|
|
if mode == 'meson'
|
|
# error()
|
|
endif
|
|
|
|
if mode == 'pyproject'
|
|
py = import('python').find_installation(pure: false)
|
|
|
|
namespace_path = meson.project_name().replace('.', '/')
|
|
|
|
install_root = py.get_install_dir(pure: true)
|
|
install_root_binary = py.get_install_dir(pure: false)
|
|
|
|
module_root = install_root / namespace_path
|
|
|
|
python_sources = run_command(
|
|
'find', namespace_path, '-iname', '*.py',
|
|
check: true
|
|
).stdout().strip().split('\n')
|
|
|
|
py.install_sources(
|
|
python_sources,
|
|
preserve_path: true,
|
|
pure: true,
|
|
# subdir: namespace_path,
|
|
)
|
|
|
|
# install_subdir(
|
|
# namespace_path,
|
|
# install_dir: py.get_install_dir(),
|
|
# install_tag: 'python-runtime',
|
|
# # python_sources,
|
|
# # subdir: namespace_path,
|
|
# )
|
|
|
|
install_data(
|
|
files(
|
|
[
|
|
namespace_path / 'py.typed',
|
|
],
|
|
# 'py.typed',
|
|
# '__init__.py',
|
|
# 'pyproject.toml',
|
|
),
|
|
install_dir : install_root,
|
|
install_tag: 'python-runtime',
|
|
preserve_path: true,
|
|
)
|
|
#
|
|
install_subdir(
|
|
project_root / '..' / 'meson',
|
|
install_dir : module_root,
|
|
strip_directory: false,
|
|
# install_tag: 'devel',
|
|
install_tag: 'devel',
|
|
)
|
|
endif
|