diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2020-09-17 17:50:09 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2020-09-17 22:25:37 +0000 |
commit | faba48d85392ba08c7130e7872e19c65ebbb516a (patch) | |
tree | ff0d11f108f24947373638c56f444612472e2f79 /mesonbuild/backend | |
parent | 9b8ac9db32f245a917c50103cc02154dac30ba70 (diff) | |
download | meson-faba48d85392ba08c7130e7872e19c65ebbb516a.zip meson-faba48d85392ba08c7130e7872e19c65ebbb516a.tar.gz meson-faba48d85392ba08c7130e7872e19c65ebbb516a.tar.bz2 |
backends: Treat build target as generator only when it's the first arg
Otherwise it might be an argument to a script that just inspects the
binary itself.
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r-- | mesonbuild/backend/backends.py | 8 | ||||
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 | ||||
-rw-r--r-- | mesonbuild/backend/vs2010backend.py | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 9bb1a9a..85d5eb6 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -919,9 +919,9 @@ class Backend: if delta > 0.001: raise MesonException('Clock skew detected. File {} has a time stamp {:.4f}s in the future.'.format(absf, delta)) - def build_target_to_cmd_array(self, bt): + def build_target_to_cmd_array(self, bt, check_cross): if isinstance(bt, build.BuildTarget): - if isinstance(bt, build.Executable) and bt.for_machine is not MachineChoice.BUILD: + if check_cross and isinstance(bt, build.Executable) and bt.for_machine is not MachineChoice.BUILD: if (self.environment.is_cross_build() and self.environment.exe_wrapper is None and self.environment.need_exe_wrapper()): @@ -1061,9 +1061,11 @@ class Backend: inputs = self.get_custom_target_sources(target) # Evaluate the command list cmd = [] + index = -1 for i in target.command: + index += 1 if isinstance(i, build.BuildTarget): - cmd += self.build_target_to_cmd_array(i) + cmd += self.build_target_to_cmd_array(i, (index == 0)) continue elif isinstance(i, build.CustomTarget): # GIR scanner will attempt to execute this binary but diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 6ac49f6..f95c29b 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1977,7 +1977,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) generator = genlist.get_generator() subdir = genlist.subdir exe = generator.get_exe() - exe_arr = self.build_target_to_cmd_array(exe) + exe_arr = self.build_target_to_cmd_array(exe, True) infilelist = genlist.get_inputs() outfilelist = genlist.get_outputs() extra_dependencies = self.get_custom_target_depend_files(genlist) diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index a9896a1..3b0f842 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -121,7 +121,7 @@ class Vs2010Backend(backends.Backend): infilelist = genlist.get_inputs() outfilelist = genlist.get_outputs() source_dir = os.path.join(down, self.build_to_src, genlist.subdir) - exe_arr = self.build_target_to_cmd_array(exe) + exe_arr = self.build_target_to_cmd_array(exe, True) idgroup = ET.SubElement(parent_node, 'ItemGroup') for i in range(len(infilelist)): if len(infilelist) == len(outfilelist): |