Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions spin/cmds/meson.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,13 +283,15 @@ def build(
quiet=False,
build_dir=None,
prefix=None,
meson_compile_args=(),
meson_install_args=(),
):
"""🔧 Build package with Meson/ninja

The package is installed to `build-install` (unless a different
build directory is specified with `-C`).

MESON_ARGS are passed through e.g.:
MESON_ARGS are passed through to `meson setup` e.g.:

spin build -- -Dpkg_config_path=/lib64/pkgconfig

Expand Down Expand Up @@ -328,12 +330,14 @@ def build(
)
return

meson_args = list(meson_args)
meson_args_setup = list(meson_args)

if gcov:
meson_args = meson_args + ["-Db_coverage=true"]
meson_args_setup = meson_args_setup + ["-Db_coverage=true"]

setup_cmd = _meson_cli() + ["setup", build_dir, f"--prefix={prefix}"] + meson_args
setup_cmd = (
_meson_cli() + ["setup", build_dir, f"--prefix={prefix}"] + meson_args_setup
)

if clean:
print(f"Removing `{build_dir}`")
Expand Down Expand Up @@ -365,10 +369,15 @@ def build(
compile_flags += ["-j", str(jobs)]

p = _run(
_meson_cli() + ["compile"] + compile_flags + ["-C", build_dir],
_meson_cli()
+ ["compile"]
+ compile_flags
+ ["-C", build_dir]
+ list(meson_compile_args),
sys_exit=True,
output=not quiet,
)

p = _run(
_meson_cli()
+ [
Expand All @@ -380,7 +389,8 @@ def build(
install_dir
if os.path.isabs(install_dir)
else os.path.relpath(abs_install_dir, abs_build_dir),
],
]
+ list(meson_install_args),
output=(not quiet) and verbose,
)

Expand Down
Loading