[+] extend tool.meson

1. allow to specify setup args
    for meson setup,
    when building mode=meson of pyproject.toml;
This commit is contained in:
Siarhei Siniak 2025-05-22 14:27:30 +03:00
parent b46571b198
commit 4d10656e0a
3 changed files with 15 additions and 2 deletions

@ -5,7 +5,7 @@ project(
).stdout().strip('\n'),
# 'online.fxreader.uv',
# ['c', 'cpp'],
version: '0.1.5.17+27.1',
version: '0.1.5.17+27.2',
# default_options: [
# 'cpp_std=c++23',
# # 'prefer_static=true',

@ -46,7 +46,8 @@ class PyProject:
class Meson:
@dataclasses.dataclass
class Args:
install: list[str]
install: Optional[list[str]] = None
setup: Optional[list[str]] = None
args: Args
@ -541,6 +542,8 @@ class CLI(abc.ABC):
env: Optional[dict[str, str]] = None,
# third_party_roots: Optional[list[pathlib.Path]] = None,
) -> None:
from . import cli_bootstrap
project = self.projects[project_name]
if argv is None:
@ -549,6 +552,10 @@ class CLI(abc.ABC):
if env is None:
env = dict()
pyproject = cli_bootstrap.pyproject_load(project.source_dir / 'pyproject.toml')
pyproject_tool = pydantic.RootModel[PyProject.Tool].model_validate(pyproject.tool).root
logger.info(dict(env=env))
if force:
@ -561,6 +568,9 @@ class CLI(abc.ABC):
if len(self.third_party_roots) > 0:
extra_args.extend(['-Dthird_party_roots=%s' % str(o.absolute()) for o in self.third_party_roots])
if pyproject_tool.meson and pyproject_tool.meson.args and pyproject_tool.meson.args.setup:
extra_args = pyproject_tool.meson.args.setup + extra_args
cmd = [
shutil_which(
'meson',

Binary file not shown.