freelance-project-34-market.../python/meson.build
LLM 4e7a15b9e8 [+] add build config for archlinux as separate meson package
1. add python/pyproject.common.toml with module definitions;
  2. add meson/online/.../archlinux/ with meson.build, m.py, pyproject.common.toml;
  3. meson.build uses fs.relative_to for python sources from ../../python/;
  4. m.py is cli_bootstrap.py copy with last 5 lines patched for paths;
  5. update Makefile with python_put_archlinux_venv rule;
  6. rename python/pyproject.toml to pyproject.toml.bak;
  7. update .gitignore, docker-compose.local.yml, requirements.txt;
2026-04-06 07:04:09 +00:00

88 lines
1.6 KiB
Meson

project(
run_command(
'.venv/bin/toml', 'get', '--toml-path', 'pyproject.toml', 'project.name',
check: true
).stdout().strip('\n'),
# 'online.fxreader.uv',
# ['c', 'cpp'],
version: '0.1.5.17+27.23',
# 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