diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-27 11:46:42 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-31 22:52:31 -0400 |
commit | 8ae2bf5a9e652d49027191709cda5353446af487 (patch) | |
tree | 930e6765fd6779e515221830d9167649092a7f90 /mesonbuild/backend/backends.py | |
parent | 3455f21f72fdc66f35479e01cf9d1fff50665c16 (diff) | |
download | meson-8ae2bf5a9e652d49027191709cda5353446af487.zip meson-8ae2bf5a9e652d49027191709cda5353446af487.tar.gz meson-8ae2bf5a9e652d49027191709cda5353446af487.tar.bz2 |
allow RunTarget to skip wrapping due to env
Forcing serialization on when writing out the build rule makes very
little sense. It was always "forced" on because we mandated a couple of
environment variables due to legacy reasons.
Add an attribute to RunTarget to say that a given target doesn't *need*
those environment variables, and let ninja optimize them away and run
the command directly if set.
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r-- | mesonbuild/backend/backends.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 0f70643..b5b8171 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -1445,11 +1445,12 @@ class Backend: def get_run_target_env(self, target: build.RunTarget) -> build.EnvironmentVariables: env = target.env if target.env else build.EnvironmentVariables() - introspect_cmd = join_args(self.environment.get_build_command() + ['introspect']) - env.set('MESON_SOURCE_ROOT', [self.environment.get_source_dir()]) - env.set('MESON_BUILD_ROOT', [self.environment.get_build_dir()]) - env.set('MESON_SUBDIR', [target.subdir]) - env.set('MESONINTROSPECT', [introspect_cmd]) + if target.default_env: + introspect_cmd = join_args(self.environment.get_build_command() + ['introspect']) + env.set('MESON_SOURCE_ROOT', [self.environment.get_source_dir()]) + env.set('MESON_BUILD_ROOT', [self.environment.get_build_dir()]) + env.set('MESON_SUBDIR', [target.subdir]) + env.set('MESONINTROSPECT', [introspect_cmd]) return env def run_postconf_scripts(self) -> None: |