diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py index 0077e4ed8d5f78796c2675d0b7d6e8e1852bf95b..a470f65bdb39518d6c49648a6f71be0f2fdfde4d 100644 --- a/packages/hxtorch/package.py +++ b/packages/hxtorch/package.py @@ -129,11 +129,28 @@ class Hxtorch(WafPackage): env.set('WAF_CONFIGURE_LD_LIBRARY_PATH', ':'.join(library)) env.prepend_path('PATH', ':'.join(path)) - def setup_dependent_build_environment(self, env, dependent_spec): + def _setup_common_env(self, env): + # TODO: use standard install layout for Python modules and extensions' + # shared objects => remove then env.prepend_path('PYTHONPATH', self.prefix.lib) + # grenade needs to find some libraries for the JIT-compilation of + # programs for BrainScaleS-2's embedded processor. + ppu_include_dirs = [] + ppu_dep_names = ['bitsery', 'boost'] + for ppu_dep_name in ppu_dep_names: + dep = self.spec[ppu_dep_name] + dep_include_dirs = set(dep.headers.directories) + print('ppu includes (', dep.name, '):', dep_include_dirs, "\n") + ppu_include_dirs.extend(list(dep_include_dirs)) + env.set('C_INCLUDE_PATH', ':'.join(ppu_include_dirs)) + env.set('CPLUS_INCLUDE_PATH', ':'.join(ppu_include_dirs)) + + def setup_dependent_build_environment(self, env, dependent_spec): + self._setup_common_env(env) + def setup_run_environment(self, env): - env.prepend_path('PYTHONPATH', self.prefix.lib) + self._setup_common_env(env) # override configure step as we perform a project setup first def configure(self, spec, prefix): diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index a6e58127c8df775aaf1658b51ba30efd49b521a1..ac532a84d565026c731f61361fe36e60599625ee 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -106,11 +106,28 @@ class PynnBrainscales(WafPackage): env.set('WAF_CONFIGURE_LD_LIBRARY_PATH', ':'.join(library)) env.prepend_path('PATH', ':'.join(path)) - def setup_dependent_build_environment(self, env, dependent_spec): + def _setup_common_env(self, env): + # TODO: use standard install layout for Python modules and extensions' + # shared objects => remove then env.prepend_path('PYTHONPATH', self.prefix.lib) + # grenade needs to find some libraries for the JIT-compilation of + # programs for BrainScaleS-2's embedded processor. + ppu_include_dirs = [] + ppu_dep_names = ['bitsery', 'boost'] + for ppu_dep_name in ppu_dep_names: + dep = self.spec[ppu_dep_name] + dep_include_dirs = set(dep.headers.directories) + print('ppu includes (', dep.name, '):', dep_include_dirs, "\n") + ppu_include_dirs.extend(list(dep_include_dirs)) + env.set('C_INCLUDE_PATH', ':'.join(ppu_include_dirs)) + env.set('CPLUS_INCLUDE_PATH', ':'.join(ppu_include_dirs)) + + def setup_dependent_build_environment(self, env, dependent_spec): + self._setup_common_env(env) + def setup_run_environment(self, env): - env.prepend_path('PYTHONPATH', self.prefix.lib) + self._setup_common_env(env) # override configure step as we perform a project setup first def configure(self, spec, prefix):