From 6b1f73f9e0052dcaa7907ce13492f4dba932a38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Fri, 15 Mar 2024 22:48:04 +0100 Subject: [PATCH] build: Move build subdir logic into compute_build_subdir() --- mesonbuild/build.py | 15 ++++++++------- mesonbuild/interpreter/interpreter.py | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mesonbuild/build.py b/mesonbuild/build.py index a4b6dc676f37..c10bbffc2db0 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -458,7 +458,7 @@ def to_string_list(self, sourcedir: str, builddir: str) -> T.List[str]: be added if this is unset :returns: A list of strings (without compiler argument) """ - bsubdir = f'build.{self.curdir}' if self.is_build_only_subproject else self.curdir + bsubdir = compute_build_subdir(self.curdir, self.is_build_only_subproject) strlist: T.List[str] = [] for idir in self.incdirs: @@ -672,9 +672,7 @@ def get_source_subdir(self) -> str: return self.subdir def get_output_subdir(self) -> str: - if self.build_only_subproject: - return f'build.{self.subdir}' - return self.get_source_subdir() + return compute_build_subdir(self.subdir, self.build_only_subproject) def get_typename(self) -> str: return self.typename @@ -2005,9 +2003,7 @@ def get_source_subdir(self) -> str: return self.subdir def get_output_subdir(self) -> str: - if self.is_build_only_subproject: - return f'build.{self.subdir}' - return self.get_source_subdir() + return compute_build_subdir(self.subdir, self.is_build_only_subproject) class Executable(BuildTarget): @@ -3186,6 +3182,11 @@ def get_sources_string_names(sources, backend): raise AssertionError(f'Unknown source type: {s!r}') return names +def compute_build_subdir(subdir: str, build_only_subproject: bool) -> str: + if build_only_subproject: + return f'build.{subdir}' + return subdir + def load(build_dir: str) -> Build: filename = os.path.join(build_dir, 'meson-private', 'build.dat') try: diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 33a069b9125c..1f802cfc5676 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -971,7 +971,7 @@ def _do_subproject_meson(self, subp_name: SubProject, subdir: str, ast.accept(printer) printer.post_process() bsubdir = os.path.join(self.build.environment.get_build_dir(), - subdir if not new_build.environment.coredata.is_build_only else f'build.{subdir}') + build.compute_build_subdir(subdir, new_build.environment.coredata.is_build_only)) os.makedirs(bsubdir, exist_ok=True) meson_filename = os.path.join(bsubdir, 'meson.build') with open(meson_filename, "w", encoding='utf-8') as f: