summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py6
-rw-r--r--mesonbuild/utils/universal.py5
2 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 9a7700618..45b1374e8 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -29,7 +29,7 @@ from ..mesonlib import (
File, MachineChoice, MesonException, MesonBugException, OrderedSet,
ExecutableSerialisation, EnvironmentException,
classify_unity_sources, get_compiler_for_source,
- get_rsp_threshold,
+ get_rsp_threshold, unique_list
)
from ..options import OptionKey
@@ -471,11 +471,11 @@ class Backend:
def flatten_object_list(self, target: build.BuildTarget, proj_dir_to_build_root: str = ''
) -> T.Tuple[T.List[str], T.List[build.BuildTargetTypes]]:
obj_list, deps = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
- return list(dict.fromkeys(obj_list)), deps
+ return unique_list(obj_list), deps
def determine_ext_objs(self, objects: build.ExtractedObjects) -> T.List[str]:
obj_list, _ = self._flatten_object_list(objects.target, [objects], '')
- return list(dict.fromkeys(obj_list))
+ return unique_list(obj_list)
def _flatten_object_list(self, target: build.BuildTarget,
objects: T.Sequence[T.Union[str, 'File', build.ExtractedObjects]],
diff --git a/mesonbuild/utils/universal.py b/mesonbuild/utils/universal.py
index 06283106a..ad652aab1 100644
--- a/mesonbuild/utils/universal.py
+++ b/mesonbuild/utils/universal.py
@@ -154,6 +154,7 @@ __all__ = [
'substitute_values',
'substring_is_in_list',
'typeslistify',
+ 'unique_list',
'verbose_git',
'version_compare',
'version_compare_condition_with_min',
@@ -2081,6 +2082,10 @@ def substring_is_in_list(substr: str, strlist: T.List[str]) -> bool:
return False
+def unique_list(x: T.Iterable[_T]) -> T.List[_T]:
+ return list(dict.fromkeys(x))
+
+
class OrderedSet(T.MutableSet[_T]):
"""A set that preserves the order in which items are added, by first
insertion.