Skip to content
Snippets Groups Projects
Commit 64a21e6e authored by Eleni Mathioulaki's avatar Eleni Mathioulaki
Browse files

Merge branch 'master' into 'experimental_rel'

create new experimental release

See merge request technical-coordination/project-internal/devops/platform/ebrains-spack-builds!193
parents 5f88789f bbdb23ca
No related branches found
No related tags found
2 merge requests!331BrainScaleS: Update software state,!193create new experimental release
Pipeline #19544 passed with stage
in 49 minutes and 36 seconds
......@@ -297,7 +297,6 @@ sync-gitlab-spack-instance:
SPACK_USER_CONFIG_PATH: $SPACK_PATH/.spack
SPACK_REPO_PATH: $SPACK_PATH/ebrains-spack-builds
script:
- rm -rf /mnt/build_logs/
- |
if [ ! -d $SPACK_PATH ]; then
# git clone --depth 1 -c advice.detachedHead=false -c feature.manyFiles=true --branch $SPACK_VERSION https://github.com/spack/spack $SPACK_PATH
......@@ -315,7 +314,7 @@ sync-gitlab-spack-instance:
- spack load gcc@10.3.0
- spack compiler find
- spack compiler list
- spack install python@3.8.11 %gcc@10.3.0 || (cp -r /tmp/spack/spack-stage /mnt/build_logs; exit 1)
- spack install python@3.8.11 %gcc@10.3.0 || (cp -r /tmp/spack/spack-stage $CI_PROJECT_DIR/build_logs; exit 1)
# - for section in $(spack config list); do spack config blame $section; done
- mkdir -p $SPACK_REPO_PATH && cp -r -t $SPACK_REPO_PATH $CI_PROJECT_DIR/{packages,repo.yaml}
- spack repo list | grep -q ebrains-spack-builds && echo "Repository registered already" || spack repo add $SPACK_REPO_PATH
......@@ -324,11 +323,15 @@ sync-gitlab-spack-instance:
- spack env activate $SPACK_NFS_ENV
- cp $CI_PROJECT_DIR/spack.yaml $SPACK_ROOT/var/spack/environments/$SPACK_NFS_ENV/spack.yaml
- spack concretize -f
- spack install --no-check-signature || (cp -r /tmp/spack/spack-stage /mnt/build_logs; exit 1)
- spack install --no-check-signature || (cp -r /tmp/spack/spack-stage $CI_PROJECT_DIR/build_logs; exit 1)
- spack module tcl refresh -y
- spack reindex
- spack env loads -r
timeout: 2 days
artifacts:
paths:
- build_logs/
when: on_failure
only:
refs:
- schedules
......
diff --git a/fmt/format.h b/fmt/format.h
index 561a9e0..9faf5ca 100644
--- a/fmt/format.h
+++ b/fmt/format.h
@@ -153,7 +153,7 @@ typedef __int64 intmax_t;
# define FMT_HAS_CPP_ATTRIBUTE(x) 0
#endif
-#if FMT_HAS_CPP_ATTRIBUTE(maybe_unused)
+#if FMT_HAS_CPP_ATTRIBUTE(maybe_unused) && __cplusplus >= 201103L
# define FMT_HAS_CXX17_ATTRIBUTE_MAYBE_UNUSED
// VC++ 1910 support /std: option and that will set _MSVC_LANG macro
// Clang with Microsoft CodeGen doesn't define _MSVC_LANG macro
diff --git a/fmt/CMakeLists.txt b/fmt/CMakeLists.txt
index c0ef02e..1634924 100644
--- a/fmt/CMakeLists.txt
+++ b/fmt/CMakeLists.txt
@@ -14,8 +14,6 @@ if (FMT_CPPFORMAT)
add_library(cppformat ${FMT_SOURCES} ${FMT_HEADERS})
endif ()
-# Starting with cmake 3.1 the CXX_STANDARD property can be used instead.
-target_compile_options(fmt PUBLIC ${CPP11_FLAG})
if (FMT_PEDANTIC)
target_compile_options(fmt PRIVATE ${PEDANTIC_COMPILE_FLAGS})
endif ()
diff --git a/support/cmake/cxx11.cmake b/support/cmake/cxx11.cmake
index 31ea106..8581b9a 100644
--- a/support/cmake/cxx11.cmake
+++ b/support/cmake/cxx11.cmake
@@ -37,6 +37,10 @@ if (FMT_USE_CPP11)
endif ()
endif ()
+if (CMAKE_CXX_STANDARD)
+ set(CPP11_FLAG )
+endif ()
+
set(CMAKE_REQUIRED_FLAGS ${CPP11_FLAG})
# Check if variadic templates are working and not affected by GCC bug 39653:
# this package was adapted from the spack v0.19.0 upstream because the version
# needed for arbor 0.8 was not available on the current spack version
# 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)
from spack import *
class Fmt(CMakePackage):
"""fmt (formerly cppformat) is an open-source formatting library.
It can be used as a safe alternative to printf or as a fast alternative
to C++ IOStreams."""
homepage = "https://fmt.dev/"
url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip"
maintainers = ["msimberg"]
version("9.1.0", sha256="cceb4cb9366e18a5742128cb3524ce5f50e88b476f1e54737a47ffdf4df4c996")
version("9.0.0", sha256="fc96dd2d2fdf2bded630787adba892c23cb9e35c6fd3273c136b0c57d4651ad6")
version("8.1.1", sha256="23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d")
version("8.1.0", sha256="d8e9f093b2241c3a9fc3895e23231ef9de00c762cfa0a9c65e4748755bc352ae")
version("8.0.1", sha256="a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf")
version("7.1.3", sha256="5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f")
version("7.1.2", sha256="4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7")
version("7.1.0", sha256="308af4e36ee3ab527b51014a2a5d862682c84f5d16f7a597aea34c84853cbcb0")
version("6.1.2", sha256="63650f3c39a96371f5810c4e41d6f9b0bb10305064e6faf201cbafe297ea30e8")
version("5.3.0", sha256="4c0741e10183f75d7d6f730b8708a99b329b2f942dad5a9da3385ab92bb4a15c")
version("5.2.1", sha256="43894ab8fe561fc9e523a8024efc23018431fa86b95d45b06dbe6ddb29ffb6cd")
version("5.2.0", sha256="c016db7f825bce487a7929e1edb747b9902a2935057af6512cad3df3a080a027")
version("5.1.0", sha256="77ef9fea638dc846e484409fbc1ea710bb9bcea042e7b35b8805041bf7655ad5")
version("5.0.0", sha256="8dd58daf13e7e8adca99f8725ef3ae598f9c97efda7d6d8d4c49db5047879097")
version("4.1.0", sha256="9d49bf02ceb9d0eec51144b203b63b77e69d3798bb402fb82e7d0bdb06c79eeb")
version("4.0.0", sha256="10a9f184d4d66f135093a08396d3b0a0ebe8d97b79f8b3ddb8559f75fe4fcbc3")
version("3.0.2", sha256="51407b62a202b29d1a9c0eb5ecd4095d30031aea65407c42c25cb10cb5c59ad4")
version("3.0.1", sha256="4c9af0dc919a8ae7022b44e1a03c435e42d65c866f44667d8d920d342b098550")
version("3.0.0", sha256="1b050b66fa31b74f1d75a14f15e99e728ab79572f176a53b2f8ad7c201c30ceb")
variant(
"cxxstd",
default="11",
values=("98", "11", "14", "17"),
multi=False,
description="Use the specified C++ standard when building",
)
variant("shared", default=False, description="Build shared library")
variant("pic", default=True, description="Build position-independent code")
depends_on("cmake@3.1.0:", type="build")
# Supported compilers/standards are detailed here:
# http://fmtlib.net/latest/index.html#portability
conflicts("%gcc@:4.3", when="@5:")
conflicts("%llvm@:2.8", when="@5:")
# 5 and above require C++11
conflicts("cxxstd=98", when="@5:")
# 5.0.0 enables C++14 auto return types in C++11 mode
conflicts("cxxstd=11", when="@5.0.0")
# 4.1 fails with C++17 (https://github.com/fmtlib/fmt/issues/722)
conflicts("cxxstd=17", when="@4.1.0")
# edg based compilers have issues with fmt 9.0.0 and C++17 standard
# (https://github.com/fmtlib/fmt/issues/3028)
conflicts("cxxstd=17", when="@9.0.0%intel")
conflicts("cxxstd=17", when="@9.0.0%nvhpc")
# Use CMAKE_CXX_STANDARD to define C++ flag, as in later versions
patch("fmt-use-cmake-cxx-standard_3.0.0.patch", when="@3.0.0")
# Remove hardcoding of "-std=c++11/0x" in INTERFACE_COMPILE_OPTIONS
patch("fmt-no-export-cpp11flag_3.0.0.patch", when="@3.0.0:3.0.1")
# Only allow [[attributes]] on C++11 and higher
patch("fmt-attributes-cpp11_4.1.0.patch", when="@4.1.0")
# Fix compilation with hipcc/dpcpp: https://github.com/fmtlib/fmt/issues/3005
patch(
"https://github.com/fmtlib/fmt/commit/0b0f7cfbfcebd021c910078003d413354bd843e2.patch?full_index=1",
sha256="08fb707bf8b4fc890d6eed29217ead666558cbae38f9249e22ddb82212f0eb4a",
when="@9.0.0:9.1.0",
)
def cmake_args(self):
spec = self.spec
args = []
if self.spec.satisfies("+shared"):
args.append("-DBUILD_SHARED_LIBS=ON")
if "+pic" in spec:
args.extend(
[
"-DCMAKE_C_FLAGS={0}".format(self.compiler.cc_pic_flag),
"-DCMAKE_CXX_FLAGS={0}".format(self.compiler.cxx_pic_flag),
]
)
args.append("-DCMAKE_CXX_STANDARD={0}".format(spec.variants["cxxstd"].value))
# Require standard at configure time to guarantee the
# compiler supports the selected standard.
args.append("-DCMAKE_CXX_STANDARD_REQUIRED=ON")
# When cxxstd is 98, must disable FMT_USE_CPP11
if "cxxstd=98" in spec:
args.append("-DFMT_USE_CPP11=OFF")
# Can't build docs without doxygen+python+virtualenv
# and call to build "doc" target
args.append("-DFMT_DOC=OFF")
return args
......@@ -132,7 +132,7 @@ class Nest(CMakePackage):
make("install")
def cmake_args(self):
args = []
args = ["-DCMAKE_INSTALL_LIBDIR=lib"]
for flag in "boost mpi openmp optimize".split():
if '+' + flag in self.spec:
......@@ -181,10 +181,8 @@ class Nest(CMakePackage):
def installcheck(self):
make("installcheck")
# quick-fix to add lib64/python3.8/site-packages to the PYTHONPATH;
# this should happen automatically for packages extending Python...
def setup_run_environment(self, env):
env.prepend_path('PYTHONPATH', self.prefix.lib64.join('python3.8/site-packages'))
pass
def install_test(self):
# test inspired by py-numpy spack package
......
# this package was adapted from the spack v0.19.0 upstream because the version
# needed for arbor 0.8 was not available on the current spack version
# 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)
import os
from spack import *
class PyPybind11(CMakePackage, PythonPackage):
"""pybind11 -- Seamless operability between C++11 and Python.
pybind11 is a lightweight header-only library that exposes C++ types in
Python and vice versa, mainly to create Python bindings of existing C++
code. Its goals and syntax are similar to the excellent Boost.Python
library by David Abrahams: to minimize boilerplate code in traditional
extension modules by inferring type information using compile-time
introspection."""
homepage = "https://pybind11.readthedocs.io"
url = "https://github.com/pybind/pybind11/archive/refs/tags/v2.10.1.tar.gz"
git = "https://github.com/pybind/pybind11.git"
maintainers = ['ax3l']
version('master', branch='master')
version("2.10.1", sha256="111014b516b625083bef701df7880f78c2243835abdb263065b6b59b960b6bad")
version("2.10.0", sha256="eacf582fa8f696227988d08cfc46121770823839fe9e301a20fbce67e7cd70ec")
version('2.9.1', sha256='c6160321dc98e6e1184cc791fbeadd2907bb4a0ce0e447f2ea4ff8ab56550913')
version('2.9.0', sha256='057fb68dafd972bc13afb855f3b0d8cf0fa1a78ef053e815d9af79be7ff567cb')
version('2.8.1', sha256='f1bcc07caa568eb312411dde5308b1e250bd0e1bc020fae855bf9f43209940cc')
version('2.8.0', sha256='9ca7770fc5453b10b00a4a2f99754d7a29af8952330be5f5602e7c2635fa3e79')
version('2.7.1', sha256='616d1c42e4cf14fa27b2a4ff759d7d7b33006fdc5ad8fd603bb2c22622f27020')
version('2.7.0', sha256='6cd73b3d0bf3daf415b5f9b87ca8817cc2e2b64c275d65f9500250f9fee1677e')
version('2.6.2', sha256='8ff2fff22df038f5cd02cea8af56622bc67f5b64534f1b83b9f133b8366acff2')
version('2.6.1', sha256='cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a')
version('2.5.0', sha256='97504db65640570f32d3fdf701c25a340c8643037c3b69aec469c10c93dc8504')
version('2.4.3', sha256='1eed57bc6863190e35637290f97a20c81cfe4d9090ac0a24f3bbf08f265eb71d')
version('2.3.0', sha256='0f34838f2c8024a6765168227ba587b3687729ebf03dc912f88ff75c7aa9cfe8')
version('2.2.4', sha256='b69e83658513215b8d1443544d0549b7d231b9f201f6fc787a2b2218b408181e')
version('2.2.3', sha256='3a3b7b651afab1c5ba557f4c37d785a522b8030dfc765da26adc2ecd1de940ea')
version('2.2.2', sha256='b639a2b2cbf1c467849660801c4665ffc1a4d0a9e153ae1996ed6f21c492064e')
version('2.2.1', sha256='f8bd1509578b2a1e7407d52e6ee8afe64268909a1bbda620ca407318598927e7')
version('2.2.0', sha256='1b0fda17c650c493f5862902e90f426df6751da8c0b58c05983ab009951ed769')
version('2.1.1', sha256='f2c6874f1ea5b4ad4ffffe352413f7d2cd1a49f9050940805c2a082348621540')
version('2.1.0', sha256='2860f2b8d0c9f65f0698289a161385f59d099b7ead1bf64e8993c486f2b93ee0')
depends_on('ninja', type='build')
depends_on('py-setuptools@42:', type='build')
depends_on('py-pytest', type='test')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on("python@3.6:", when="@2.10.0:", type=("build", "run"))
depends_on('cmake@3.13:', type='build')
depends_on('cmake@3.18:', type='build', when='@2.6.0:')
# compiler support
conflicts('%gcc@:4.7')
conflicts('%clang@:3.2')
conflicts('%intel@:16')
build_directory = '.'
def cmake_args(self):
args = []
args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s'
% self.spec['python'].command.path)
args += [
self.define('PYBIND11_TEST', self.run_tests)
]
return args
def setup_build_environment(self, env):
env.set('PYBIND11_USE_CMAKE', 1)
# https://github.com/pybind/pybind11/pull/1995
@when('@:2.4')
def patch(self):
""" see https://github.com/spack/spack/issues/13559 """
filter_file('import sys',
'import sys; return "{0}"'.format(self.prefix.include),
'pybind11/__init__.py',
string=True)
def install(self, spec, prefix):
CMakePackage.install(self, spec, prefix)
PythonPackage.install(self, spec, prefix)
@run_after('install')
@on_package_attributes(run_tests=True)
def install_test(self):
with working_dir('spack-test', create=True):
# test include helper points to right location
python = self.spec['python'].command
py_inc = python(
'-c',
'import pybind11 as py; ' +
self.spec['python'].package.print_string('py.get_include()'),
output=str).strip()
for inc in [py_inc, self.prefix.include]:
inc_file = join_path(inc, 'pybind11', 'pybind11.h')
assert os.path.isfile(inc_file)
......@@ -7,7 +7,7 @@ class PySnudda(Package):
maintainers = ['hjorth','akarmas']
version('1.3.1', '1460fb79ad7fc08097d5f729c4a72388', expand=False)
version('1.3.2', '2306ec50acead5fd4f988ec373f19718', expand=False)
depends_on('python@3.8:', type=('build','run'))
depends_on('py-pip', type='build')
......
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