summaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorLuca Bacci <luca.bacci982@gmail.com>2024-02-14 19:18:15 +0100
committerEli Schwartz <eschwartz93@gmail.com>2025-04-23 16:32:11 -0400
commit7e5ac33bb47633d4abb19fe65047c90847f2d15f (patch)
treee75dea9c4f48122f9409e23e0b722e1aab237246 /mesonbuild/backend/backends.py
parentcf2cda0f3ecc9a4f63de082c3e1ecb2f2a18cbc2 (diff)
downloadmeson-7e5ac33bb47633d4abb19fe65047c90847f2d15f.tar.gz
determine_windows_extra_paths: sort internal dependencies first
Fixes #12330
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 20f7907a1..3dfa2fba6 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -1196,25 +1196,31 @@ class Backend:
links to and return them so they can be used in unit
tests.
"""
- result: T.Set[str] = set()
prospectives: T.Set[build.BuildTargetTypes] = set()
+ internal_deps: T.Set[str] = set()
+ external_deps: T.Set[str] = set()
+
if isinstance(target, build.BuildTarget):
prospectives.update(target.get_all_link_deps())
- # External deps
- result.update(self.extract_dll_paths(target))
for bdep in extra_bdeps:
prospectives.add(bdep)
if isinstance(bdep, build.BuildTarget):
prospectives.update(bdep.get_all_link_deps())
+
# Internal deps
for ld in prospectives:
dirseg = os.path.join(self.environment.get_build_dir(), self.get_target_dir(ld))
- result.add(dirseg)
- if (isinstance(target, build.BuildTarget) and
- not self.environment.machines.matches_build_machine(target.for_machine)):
- result.update(self.get_mingw_extra_paths(target))
- return list(result)
+ internal_deps.add(dirseg)
+
+ if isinstance(target, build.BuildTarget):
+ # External deps
+ external_deps.update(self.extract_dll_paths(target))
+
+ if not self.environment.machines.matches_build_machine(target.for_machine):
+ external_deps.update(self.get_mingw_extra_paths(target))
+
+ return list(internal_deps) + list(external_deps)
def write_benchmark_file(self, datafile: T.BinaryIO) -> None:
self.write_test_serialisation(self.build.get_benchmarks(), datafile)