diff options
author | Charles Brunet <charles.brunet@optelgroup.com> | 2023-02-09 07:19:52 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-02-14 10:50:10 -0500 |
commit | 04f233a80d570c90c1a152114cbf3bdad6a61607 (patch) | |
tree | 3910652b33a1867f8ec1cf26f1c5a495a9d8320f /mesonbuild | |
parent | 70286a93b00868d705647dcbfbd82ab0822040e8 (diff) | |
download | meson-04f233a80d570c90c1a152114cbf3bdad6a61607.zip meson-04f233a80d570c90c1a152114cbf3bdad6a61607.tar.gz meson-04f233a80d570c90c1a152114cbf3bdad6a61607.tar.bz2 |
allow install script to run in dry-run mode
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/interpreter/mesonmain.py | 3 | ||||
-rw-r--r-- | mesonbuild/minstall.py | 8 | ||||
-rw-r--r-- | mesonbuild/utils/core.py | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index c8c80b2..cd3d5ed 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -38,6 +38,7 @@ if T.TYPE_CHECKING: skip_if_destdir: bool install_tag: str + dry_run: bool class NativeKW(TypedDict): @@ -152,6 +153,7 @@ class MesonMain(MesonInterpreterObject): 'meson.add_install_script', KwargInfo('skip_if_destdir', bool, default=False, since='0.57.0'), KwargInfo('install_tag', (str, NoneType), since='0.60.0'), + KwargInfo('dry_run', bool, default=False, since='1.1.0'), ) def add_install_script_method( self, @@ -162,6 +164,7 @@ class MesonMain(MesonInterpreterObject): script = self._find_source_script('add_install_script', args[0], script_args) script.skip_if_destdir = kwargs['skip_if_destdir'] script.tag = kwargs['install_tag'] + script.dry_run = kwargs['dry_run'] self.build.install_scripts.append(script) @typed_pos_args( diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py index 8c74990..40c2d2d 100644 --- a/mesonbuild/minstall.py +++ b/mesonbuild/minstall.py @@ -361,9 +361,9 @@ class Installer: return p.returncode, o, e return 0, '', '' - def run_exe(self, *args: T.Any, **kwargs: T.Any) -> int: - if not self.dry_run: - return run_exe(*args, **kwargs) + def run_exe(self, exe: ExecutableSerialisation, extra_env: T.Optional[T.Dict[str, str]] = None) -> int: + if (not self.dry_run) or exe.dry_run: + return run_exe(exe, extra_env) return 0 def should_install(self, d: T.Union[TargetInstallData, InstallEmptyDir, @@ -655,6 +655,8 @@ class Installer: } if self.options.quiet: env['MESON_INSTALL_QUIET'] = '1' + if self.dry_run: + env['MESON_INSTALL_DRY_RUN'] = '1' for i in d.install_scripts: if not self.should_install(i): diff --git a/mesonbuild/utils/core.py b/mesonbuild/utils/core.py index 4398413..9b9afab 100644 --- a/mesonbuild/utils/core.py +++ b/mesonbuild/utils/core.py @@ -152,3 +152,4 @@ class ExecutableSerialisation: self.pickled = False self.skip_if_destdir = False self.subproject = '' + self.dry_run = False |