Fix run_targets running scripts from different subdirs.
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 68744ef..d688b6a 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -4008,6 +4008,8 @@
             if isinstance(i, dependencies.ExternalProgram) and not i.found():
                 raise InterpreterException(f'Tried to use non-existing executable {i.name!r}')
             cleaned_args.append(i)
+        if isinstance(cleaned_args[0], str):
+            cleaned_args[0] = self.func_find_program(node, cleaned_args[0], {})
         name = args[0]
         if not isinstance(name, str):
             raise InterpreterException('First argument must be a string.')
diff --git a/run_unittests.py b/run_unittests.py
index 759aa96..7e7ec93 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -2385,6 +2385,15 @@
         self.run_target('check-env')
         self.run_target('check-env-ct')
 
+    def test_run_target_subdir(self):
+        '''
+        Test that run_targets are run from the correct directory
+        https://github.com/mesonbuild/meson/issues/957
+        '''
+        testdir = os.path.join(self.common_test_dir, '52 run target')
+        self.init(testdir)
+        self.run_target('textprinter')
+
     def test_install_introspection(self):
         '''
         Tests that the Meson introspection API exposes install filenames correctly
diff --git a/test cases/common/52 run target/meson.build b/test cases/common/52 run target/meson.build
index df0a1a5..85d30f0 100644
--- a/test cases/common/52 run target/meson.build
+++ b/test cases/common/52 run target/meson.build
@@ -103,3 +103,5 @@
         'MY_ENV': '1'},
   output: 'check-env-ct',
 )
+
+run_target('textprinter', command: ['subdir/textprinter.py'])
diff --git a/test cases/common/52 run target/subdir/textprinter.py b/test cases/common/52 run target/subdir/textprinter.py
new file mode 100644
index 0000000..3159c08
--- /dev/null
+++ b/test cases/common/52 run target/subdir/textprinter.py
@@ -0,0 +1,3 @@
+#!/usr/bin/env python3
+
+print('I am a script. Being run.')