Skip to content

Commit e1ec9d9

Browse files
committed
simplify handling of search-path-cpp-headers option with tools.utilities.unique_ordered_append
1 parent b714e65 commit e1ec9d9

File tree

1 file changed

+7
-28
lines changed

1 file changed

+7
-28
lines changed

easybuild/tools/toolchain/toolchain.py

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
from easybuild.tools.systemtools import LINUX, get_os_type
7070
from easybuild.tools.toolchain.options import ToolchainOptions
7171
from easybuild.tools.toolchain.toolchainvariables import ToolchainVariables
72-
from easybuild.tools.utilities import nub, trace_msg
72+
from easybuild.tools.utilities import nub, unique_ordered_append, trace_msg
7373

7474

7575
_log = fancylogger.getLogger('tools.toolchain', fname=False)
@@ -1085,20 +1085,11 @@ def _add_dependency_cpp_headers(self, dep_root, extra_dirs=None):
10851085
"""
10861086
Append prepocessor paths for given dependency root directory
10871087
"""
1088-
header_dirs = ["include"]
1089-
10901088
if extra_dirs is None:
10911089
extra_dirs = ()
1092-
elif extra_dirs and isinstance(extra_dirs, (str,)):
1093-
extra_dirs = [extra_dirs]
1094-
1095-
try:
1096-
header_dirs.extend(extra_dirs)
1097-
except TypeError as err:
1098-
err_msg = f"_add_dependency_cpp_headers: given extra_dirs is not iterable: {extra_dirs}"
1099-
raise EasyBuildError(err_msg) from err
1100-
else:
1101-
header_dirs = nub(header_dirs) # remove duplicates
1090+
1091+
header_dirs = ["include"]
1092+
header_dirs = unique_ordered_append(header_dirs, extra_dirs)
11021093

11031094
# mode of operation is defined by search-path-cpp-headers option
11041095
# toolchain option has precedence over build option
@@ -1125,28 +1116,16 @@ def _add_dependency_linker_paths(self, dep_root, extra_dirs=None):
11251116
"""
11261117
Append linker paths for given dependency root directory
11271118
"""
1128-
lib_dirs = ["lib64", "lib"]
1129-
11301119
if extra_dirs is None:
11311120
extra_dirs = ()
1132-
elif extra_dirs and isinstance(extra_dirs, (str,)):
1133-
extra_dirs = [extra_dirs]
1134-
1135-
try:
1136-
lib_dirs.extend(extra_dirs)
1137-
except TypeError as err:
1138-
err_msg = f"_add_dependency_linker_paths: given extra_dirs is not iterable: {extra_dirs}"
1139-
raise EasyBuildError(err_msg) from err
1140-
else:
1141-
lib_dirs = nub(lib_dirs) # remove duplicates
1121+
1122+
lib_dirs = ["lib64", "lib"]
1123+
lib_dirs = unique_ordered_append(lib_dirs, extra_dirs)
11421124

11431125
env_var = "LDFLAGS"
11441126
self.log.debug("Adding lib paths to toolchain variable '%s': %s", env_var, dep_root)
11451127
self.variables.append_subdirs(env_var, dep_root, subdirs=lib_dirs)
11461128

1147-
def _unique_ordered_list_append(self, base, extra_dirs):
1148-
"""Append list of dirs to another list of dirs keeping order and without duplicates"""
1149-
11501129
def _setenv_variables(self, donotset=None, verbose=True):
11511130
"""Actually set the environment variables"""
11521131

0 commit comments

Comments
 (0)