From 522bc95b33288deaea8758efc0bf837c81ee7f7a Mon Sep 17 00:00:00 2001 From: Gagandeep Singh Date: Wed, 27 Nov 2024 19:38:25 +0530 Subject: [PATCH 1/2] DEV: Update spin to accept arguments of meson compile and meson install --- spin/cmds/meson.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/spin/cmds/meson.py b/spin/cmds/meson.py index 2dd4650..c68273d 100644 --- a/spin/cmds/meson.py +++ b/spin/cmds/meson.py @@ -283,6 +283,8 @@ def build( quiet=False, build_dir=None, prefix=None, + meson_compile_args=tuple(), + meson_install_args=tuple(), ): """🔧 Build package with Meson/ninja @@ -328,12 +330,12 @@ 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}`") @@ -360,15 +362,18 @@ def build( # Any other conditions that warrant a reconfigure? + meson_compile_args = list(meson_compile_args) compile_flags = ["-v"] if verbose else [] if jobs: compile_flags += ["-j", str(jobs)] p = _run( - _meson_cli() + ["compile"] + compile_flags + ["-C", build_dir], + _meson_cli() + ["compile"] + compile_flags + ["-C", build_dir] + meson_compile_args, sys_exit=True, output=not quiet, ) + + meson_install_args = list(meson_install_args) p = _run( _meson_cli() + [ @@ -380,7 +385,7 @@ def build( install_dir if os.path.isabs(install_dir) else os.path.relpath(abs_install_dir, abs_build_dir), - ], + ] + meson_install_args, output=(not quiet) and verbose, ) From d73060d780fad04d0513f0148f0281e91bda8de7 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Tue, 3 Dec 2024 16:56:04 -0800 Subject: [PATCH 2/2] Clarify docstring --- spin/cmds/meson.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/spin/cmds/meson.py b/spin/cmds/meson.py index c68273d..ca47801 100644 --- a/spin/cmds/meson.py +++ b/spin/cmds/meson.py @@ -283,15 +283,15 @@ def build( quiet=False, build_dir=None, prefix=None, - meson_compile_args=tuple(), - meson_install_args=tuple(), + 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 @@ -335,7 +335,9 @@ def build( if gcov: meson_args_setup = meson_args_setup + ["-Db_coverage=true"] - setup_cmd = _meson_cli() + ["setup", build_dir, f"--prefix={prefix}"] + meson_args_setup + setup_cmd = ( + _meson_cli() + ["setup", build_dir, f"--prefix={prefix}"] + meson_args_setup + ) if clean: print(f"Removing `{build_dir}`") @@ -362,18 +364,20 @@ def build( # Any other conditions that warrant a reconfigure? - meson_compile_args = list(meson_compile_args) compile_flags = ["-v"] if verbose else [] if jobs: compile_flags += ["-j", str(jobs)] p = _run( - _meson_cli() + ["compile"] + compile_flags + ["-C", build_dir] + meson_compile_args, + _meson_cli() + + ["compile"] + + compile_flags + + ["-C", build_dir] + + list(meson_compile_args), sys_exit=True, output=not quiet, ) - meson_install_args = list(meson_install_args) p = _run( _meson_cli() + [ @@ -385,7 +389,8 @@ def build( install_dir if os.path.isabs(install_dir) else os.path.relpath(abs_install_dir, abs_build_dir), - ] + meson_install_args, + ] + + list(meson_install_args), output=(not quiet) and verbose, )