aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-03-27 11:46:42 -0400
committerEli Schwartz <eschwartz@archlinux.org>2022-03-31 22:52:31 -0400
commit8ae2bf5a9e652d49027191709cda5353446af487 (patch)
tree930e6765fd6779e515221830d9167649092a7f90 /mesonbuild/backend/backends.py
parent3455f21f72fdc66f35479e01cf9d1fff50665c16 (diff)
downloadmeson-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.py11
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: