From b9489551cc35af3f7703549d1451beaca07f9d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Fri, 10 Feb 2023 10:04:27 +0100 Subject: [PATCH] BrainScaleS: Fail earlier Until now we used a lot of try/except to keep going when preparing the environment for the build; it should just work now, so let's fail early. --- packages/hxtorch/package.py | 30 +++++++++++++--------------- packages/pynn-brainscales/package.py | 18 ++++++++--------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py index efd1b729..fdaf01a5 100644 --- a/packages/hxtorch/package.py +++ b/packages/hxtorch/package.py @@ -62,47 +62,45 @@ class Hxtorch(WafPackage): include = [] include_exclude_dirs = set(['/usr/include']) - for dep in self.spec.traverse(deptype='build'): + for dep in self.spec.traverse(deptype='build', root=False): query = self.spec[dep.name] + if dep.name in ['pthreadpool', 'fxdiv']: + print('skipping {} in SPACK_INCLUDE_DIRS/CPATH/C{{,_PLUS}}_INCLUDE_PATH\n'.format(dep.name)) + for d in query.headers.directories: + if os.path.exists(d): + env.remove_path('SPACK_INCLUDE_DIRS', d) + continue try: - if dep.name in ['pthreadpool', 'fxdiv']: - print('skipping {} in SPACK_INCLUDE_DIRS/CPATH/C{{,_PLUS}}_INCLUDE_PATH\n'.format(dep.name)) - for d in query.headers.directories: - if os.path.exists(d): - env.remove_path('SPACK_INCLUDE_DIRS', d) - continue - assert(isinstance(query.headers.directories, list)) include_dirs = set(query.headers.directories) include_dirs -= include_exclude_dirs print('headers (', dep.name, '):', include_dirs, "\n") include.extend(list(include_dirs)) - except: + except error.NoHeadersError: + # we don't care if no header directories are found pass library = [] library_exclude_dirs = set(['/lib', '/lib64', '/usr/lib', '/usr/lib64']) - for dep in self.spec.traverse(deptype=('link', 'run')): + for dep in self.spec.traverse(deptype=('link', 'run'), root=False): query = self.spec[dep.name] try: - assert(isinstance(query.libs.directories, list)) library_dirs = set(query.libs.directories) library_dirs -= library_exclude_dirs print('libs (', dep.name, '):', library_dirs, "\n") library.extend(list(library_dirs)) - except: + except error.NoLibrariesError: + # we don't care if no library directories are found pass path = [] - for dep in self.spec.traverse(deptype=('build', 'link', 'run')): + for dep in self.spec.traverse(deptype=('build', 'link', 'run'), root=False): if dep.name in ['pthreadpool', 'fxdiv']: print('skipping {} for bin'.format(dep.name)) continue query = self.spec[dep.name] - try: + if os.path.exists(self.prefix.bin): path.append(query.prefix.bin) print('bin (', dep.name, '):', query.prefix.bin, "\n") - except: - pass # llvm might be built with ~shared_libs but still builds shared libs if not any('llvm' in lib for lib in library): diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index 49bb2e59..a85cb4bd 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -61,38 +61,36 @@ class PynnBrainscales(WafPackage): include = [] include_exclude_dirs = set(['/usr/include']) - for dep in self.spec.traverse(deptype='build'): + for dep in self.spec.traverse(deptype='build', root=False): query = self.spec[dep.name] try: - assert(isinstance(query.headers.directories, list)) include_dirs = set(query.headers.directories) include_dirs -= include_exclude_dirs print('headers (', dep.name, '):', include_dirs, "\n") include.extend(list(include_dirs)) - except: + except error.NoHeadersError: + # we don't care if no header directories are found pass library = [] library_exclude_dirs = set(['/lib', '/lib64', '/usr/lib', '/usr/lib64']) - for dep in self.spec.traverse(deptype=('link', 'run')): + for dep in self.spec.traverse(deptype=('link', 'run'), root=False): query = self.spec[dep.name] try: - assert(isinstance(query.libs.directories, list)) library_dirs = set(query.libs.directories) library_dirs -= library_exclude_dirs print('libs (', dep.name, '):', library_dirs, "\n") library.extend(list(library_dirs)) - except: + except error.NoLibrariesError: + # we don't care if no library directories are found pass path = [] - for dep in self.spec.traverse(deptype=('build', 'link', 'run')): + for dep in self.spec.traverse(deptype=('build', 'link', 'run'), root=False): query = self.spec[dep.name] - try: + if os.path.exists(self.prefix.bin): path.append(query.prefix.bin) print('bin (', dep.name, '):', query.prefix.bin, "\n") - except: - pass # llvm might be built with ~shared_libs but still builds shared libs if not any('llvm' in lib for lib in library): -- GitLab