From db8bd7adf5666c9555c8a7e2f739e17ec5f4d08e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20M=C3=BCller?= <mueller@kip.uni-heidelberg.de> Date: Tue, 15 Mar 2022 17:54:41 +0100 Subject: [PATCH] =?UTF-8?q?Re-add=20setup=5Fbuild=5Fenvironment(=E2=80=A6)?= =?UTF-8?q?=20in=20pynn-brainscales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/pynn-brainscales/package.py | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index 8a510de7..68dbdeff 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -58,6 +58,51 @@ class PynnBrainscales(WafPackage): depends_on('yaml-cpp+shared', type=('build', 'link', 'run')) extends('python') + def setup_build_environment(self, env): + """waf needs to find headers and libraries by itself (mostly `boost` + tool, but also `gtest`); it also needs to run executables during + configuration.""" + + include = [] + for dep in self.spec.traverse(deptype='build'): + query = self.spec[dep.name] + try: + include.extend(query.headers.directories) + print('headers:', query.headers.directories, "\n") + except: + pass + + library = [] + for dep in self.spec.traverse(deptype=('link', 'run')): + query = self.spec[dep.name] + try: + library.extend(query.libs.directories) + print('libs:', query.libs.directories, "\n") + except: + pass + + path = [] + for dep in self.spec.traverse(deptype=('build', 'link', 'run')): + query = self.spec[dep.name] + try: + path.append(query.prefix.bin) + print('bin:', 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): + library.append(self.spec['llvm'].prefix.lib) + + env.set('CPATH', ':'.join(include)) + env.set('C_INCLUDE_PATH', ':'.join(include)) + env.set('CPLUS_INCLUDE_PATH', ':'.join(include)) + env.set('LIBRARY_PATH', ':'.join(library)) + env.set('LD_LIBRARY_PATH', ':'.join(library)) + env.prepend_path('PATH', ':'.join(path)) + + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix.lib) # override configure step as we perform a project setup first def configure(self, spec, prefix): -- GitLab