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