Skip to content
Snippets Groups Projects
Commit adb9ffe9 authored by Eric Müller's avatar Eric Müller :mountain_bicyclist:
Browse files

Drop meta-brainscales (move dependencies into pynn-brainscales)

parent d9a1f32b
No related branches found
No related tags found
2 merge requests!74create new experimental release from master,!71Drop meta-brainscales (move dependencies into pynn-brainscales)
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class MetaBrainscales(Package):
"""Core package that contains dependencies of the core DLS software
ONLY!"""
homepage = ''
# some random tarball, to make `spack fetch --dependencies visionary-defaults` work
url = 'https://github.com/electronicvisions/spack/archive/v0.8.tar.gz'
# This is only a dummy tarball (see difference between version numbers)
# TODO: as soon as a MetaPackage-concept has been merged, please update this package
version('1.0', '372ce038842f20bf0ae02de50c26e85d', url='https://github.com/electronicvisions/spack/archive/v0.8.tar.gz')
# PPU compiler dependencies
depends_on('gettext')
depends_on('zlib')
depends_on('bison')
depends_on('flex')
depends_on('m4')
depends_on('texinfo')
depends_on('wget')
conflicts('flex', when='@2.6.3', msg='Binutils 2.25 for Nux doesn\'t build with flex 2.6.3.')
# host software dependencies
depends_on('bitsery')
depends_on('binutils+gold+ld+plugins') # specialize
depends_on('boost@1.69.0: +graph+icu+mpi+python+numpy+coroutine+context cxxstd=17') # specialize boost (non-clingo)
depends_on('cereal')
depends_on('cppcheck')
depends_on('doxygen+graphviz')
depends_on('genpybind@ebrains')
depends_on('gflags')
depends_on('googletest@1.11.0: +gmock') # variadic templates needed
depends_on('intel-tbb') # ppu gdbserver
depends_on('libelf')
depends_on('liblockfile')
depends_on('llvm')
depends_on('log4cxx')
depends_on('pkg-config')
depends_on('python@3.7.0:') # BrainScaleS(-2) only supports Python >= 3.7
depends_on('py-h5py') # PyNN tests need it
depends_on('py-matplotlib')
depends_on('py-nose')
depends_on('py-numpy')
depends_on('py-pybind11')
depends_on('py-pybind11-stubgen')
depends_on('py-pycodestyle')
depends_on('py-pyelftools')
depends_on('py-pylint')
depends_on('py-pynn@0.9.4:')
depends_on('py-pyyaml')
depends_on('py-scipy')
depends_on('py-sqlalchemy')
depends_on('util-linux')
depends_on('yaml-cpp+shared')
# dummy installer; it's a "meta" package
def install(self, spec, prefix):
mkdirp(prefix.etc)
install(__file__, join_path(prefix.etc, spec.name + '.py'))
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
......@@ -13,55 +13,51 @@ class PynnBrainscales(WafPackage):
git = "https://github.com/electronicvisions/pynn-brainscales.git"
version('2.0-rc1', branch='waf')
depends_on('meta-brainscales', type=('build', 'link', 'run'))
depends_on('py-pyyaml', type=('build'))
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
# PPU compiler dependencies
depends_on('gettext')
depends_on('zlib')
depends_on('bison')
depends_on('flex')
depends_on('m4')
depends_on('texinfo')
depends_on('wget')
conflicts('flex', when='@2.6.3', msg='Binutils 2.25 for Nux doesn\'t build with flex 2.6.3.')
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))
# host software dependencies
depends_on('bitsery', type=('build', 'link', 'run'))
depends_on('binutils+gold+ld+plugins', type=('build', 'link', 'run')) # specialize
depends_on('boost@1.69.0: +graph+icu+mpi+python+numpy+coroutine+context cxxstd=17', type=('build', 'link', 'run')) # specialize boost (non-clingo, type=('build', 'link', 'run'))
depends_on('cereal', type=('build', 'link', 'run'))
depends_on('cppcheck', type=('build', 'link', 'run'))
depends_on('doxygen+graphviz', type=('build', 'link', 'run'))
depends_on('genpybind@ebrains', type=('build', 'link', 'run'))
depends_on('gflags', type=('build', 'link', 'run'))
depends_on('googletest@1.11.0: +gmock', type=('build', 'link', 'run')) # variadic templates needed
depends_on('intel-tbb', type=('build', 'link', 'run')) # ppu gdbserver
depends_on('libelf', type=('build', 'link', 'run'))
depends_on('liblockfile', type=('build', 'link', 'run'))
depends_on('llvm', type=('build', 'link', 'run'))
depends_on('log4cxx', type=('build', 'link', 'run'))
depends_on('pkg-config', type=('build', 'link', 'run'))
depends_on('python@3.7.0:', type=('build', 'link', 'run')) # BrainScaleS(-2, type=('build', 'link', 'run')) only supports Python >= 3.7
depends_on('py-h5py', type=('build', 'link', 'run')) # PyNN tests need it
depends_on('py-matplotlib', type=('build', 'link', 'run'))
depends_on('py-nose', type=('build', 'link', 'run'))
depends_on('py-numpy', type=('build', 'link', 'run'))
depends_on('py-pybind11', type=('build', 'link', 'run'))
depends_on('py-pybind11-stubgen', type=('build', 'link', 'run'))
depends_on('py-pycodestyle', type=('build', 'link', 'run'))
depends_on('py-pyelftools', type=('build', 'link', 'run'))
depends_on('py-pylint', type=('build', 'link', 'run'))
depends_on('py-pynn@0.9.4:', type=('build', 'link', 'run'))
depends_on('py-pyyaml', type=('build', 'link', 'run'))
depends_on('py-scipy', type=('build', 'link', 'run'))
depends_on('py-sqlalchemy', type=('build', 'link', 'run'))
depends_on('util-linux', type=('build', 'link', 'run'))
depends_on('yaml-cpp+shared', type=('build', 'link', 'run'))
extends('python')
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):
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment