diff options
| author | Luca Bacci <luca.bacci982@gmail.com> | 2024-02-14 19:18:15 +0100 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2025-04-23 16:32:11 -0400 |
| commit | 7e5ac33bb47633d4abb19fe65047c90847f2d15f (patch) | |
| tree | e75dea9c4f48122f9409e23e0b722e1aab237246 /mesonbuild/backend/backends.py | |
| parent | cf2cda0f3ecc9a4f63de082c3e1ecb2f2a18cbc2 (diff) | |
| download | meson-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.py | 22 |
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) |
