diff --git i/mesonbuild/backend/backends.py w/mesonbuild/backend/backends.py index ee5f4463a..4100c54c9 100644 --- i/mesonbuild/backend/backends.py +++ w/mesonbuild/backend/backends.py @@ -23,6 +23,7 @@ import pickle import re import typing as T import hashlib +import copy from .. import build from .. import dependencies @@ -1429,7 +1430,19 @@ class Backend: d.targets.append(i) def generate_custom_install_script(self, d: InstallData) -> None: - d.install_scripts = self.build.install_scripts + result: T.List[ExecutableSerialisation] = [] + srcdir = self.environment.get_source_dir() + builddir = self.environment.get_build_dir() + for i in self.build.install_scripts: + fixed_args = [] + for a in i.cmd_args: + a = a.replace('@SOURCE_ROOT@', srcdir) + a = a.replace('@BUILD_ROOT@', builddir) + fixed_args.append(a) + es = copy.copy(i) + es.cmd_args = fixed_args + result.append(es) + d.install_scripts = result def generate_header_install(self, d: InstallData) -> None: incroot = self.environment.get_includedir()