diff options
| -rw-r--r-- | mesonbuild/backend/backends.py | 6 | ||||
| -rw-r--r-- | mesonbuild/utils/universal.py | 5 |
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. |
