summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/scripts/depscan.py19
1 files changed, 6 insertions, 13 deletions
diff --git a/mesonbuild/scripts/depscan.py b/mesonbuild/scripts/depscan.py
index d5b8a0734..3a61370a9 100644
--- a/mesonbuild/scripts/depscan.py
+++ b/mesonbuild/scripts/depscan.py
@@ -1,8 +1,10 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright 2020 The Meson development team
+# Copyright © 2023 Intel Corporation
from __future__ import annotations
+import collections
import json
import os
import pathlib
@@ -37,7 +39,7 @@ class DependencyScanner:
self.sources = sources
self.provided_by: T.Dict[str, str] = {}
self.exports: T.Dict[str, str] = {}
- self.needs: T.Dict[str, T.List[str]] = {}
+ self.needs: collections.defaultdict[str, T.List[str]] = collections.defaultdict(list)
self.sources_with_exports: T.List[str] = []
def scan_file(self, fname: str) -> None:
@@ -63,10 +65,7 @@ class DependencyScanner:
# In Fortran you have an using declaration also for the module
# you define in the same file. Prevent circular dependencies.
if needed not in modules_in_this_file:
- if fname in self.needs:
- self.needs[fname].append(needed)
- else:
- self.needs[fname] = [needed]
+ self.needs[fname].append(needed)
if export_match:
exported_module = export_match.group(1).lower()
assert exported_module not in modules_in_this_file
@@ -97,10 +96,7 @@ class DependencyScanner:
# submodule (a1:a2) a3 <- requires a1@a2.smod
#
# a3 does not depend on the a1 parent module directly, only transitively.
- if fname in self.needs:
- self.needs[fname].append(parent_module_name_full)
- else:
- self.needs[fname] = [parent_module_name_full]
+ self.needs[fname].append(parent_module_name_full)
def scan_cpp_file(self, fname: str) -> None:
fpath = pathlib.Path(fname)
@@ -109,10 +105,7 @@ class DependencyScanner:
export_match = CPP_EXPORT_RE.match(line)
if import_match:
needed = import_match.group(1)
- if fname in self.needs:
- self.needs[fname].append(needed)
- else:
- self.needs[fname] = [needed]
+ self.needs[fname].append(needed)
if export_match:
exported_module = export_match.group(1)
if exported_module in self.provided_by: