diff options
author | iarspider <iarspider@gmail.com> | 2021-06-01 10:12:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-01 10:12:55 +0200 |
commit | e4edbe89cc7732704cf2568792c115ce9024bb33 (patch) | |
tree | c2c62740ae0c68670657ccb1de586eed662218fe /var | |
parent | f1d2ab38a0d3e85d229c5171a82108b44f17826a (diff) | |
download | spack-e4edbe89cc7732704cf2568792c115ce9024bb33.tar.gz spack-e4edbe89cc7732704cf2568792c115ce9024bb33.tar.bz2 spack-e4edbe89cc7732704cf2568792c115ce9024bb33.tar.xz spack-e4edbe89cc7732704cf2568792c115ce9024bb33.zip |
COOL: add new package (#23006)
Co-authored-by: George Hartzell <hartzell@alerce.com>
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/cool/cool.patch | 19 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/cool/package.py | 64 |
2 files changed, 83 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/cool/cool.patch b/var/spack/repos/builtin/packages/cool/cool.patch new file mode 100644 index 0000000000..9f4855a81a --- /dev/null +++ b/var/spack/repos/builtin/packages/cool/cool.patch @@ -0,0 +1,19 @@ +--- src/PyCool/CMakeLists.txt.orig 2021-01-12 22:09:58.000000000 +0100 ++++ src/PyCool/CMakeLists.txt 2021-04-01 10:35:53.129276400 +0200 +@@ -9,6 +9,7 @@ + + # Make PyCool_helpers.h visible verbatim in PyCoolDict.so (bug #103539) + # See http://stackoverflow.com/questions/13470499 ++file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/PyCool/_internal) + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/../RelationalCool/src/PyCool_helpers.h ${CMAKE_CURRENT_SOURCE_DIR}/dict/PyCool_headers.h > ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../RelationalCool/src/PyCool_helpers.h ${CMAKE_CURRENT_SOURCE_DIR}/dict/PyCool_headers.h) + add_custom_target(PyCool_headers_and_helpers_h ALL DEPENDS ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h) + install(FILES ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h DESTINATION python/PyCool/_internal) +--- src/RelationalCool/CMakeLists.txt.orig 2021-01-12 22:09:58.000000000 +0100 ++++ src/RelationalCool/CMakeLists.txt 2021-04-01 11:31:30.241902600 +0200 +@@ -1,5 +1,5 @@ + # Required external packages +-find_package(Boost REQUIRED) ++find_package(Boost REQUIRED chrono system thread) + include_directories(${Boost_INCLUDE_DIRS}) + find_package(CORAL REQUIRED RelationalAccess CoralKernel) + diff --git a/var/spack/repos/builtin/packages/cool/package.py b/var/spack/repos/builtin/packages/cool/package.py new file mode 100644 index 0000000000..ce8c0930bd --- /dev/null +++ b/var/spack/repos/builtin/packages/cool/package.py @@ -0,0 +1,64 @@ +# Copyright 2013-2021 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 Cool(CMakePackage): + """COOL provides specific software components and tools for the handling of the time + variation and versioning of the experiment conditions data.""" + + homepage = "https://coral-cool.docs.cern.ch/" + git = "https://gitlab.cern.ch/lcgcool/cool.git" + + tags = ['hep'] + maintainers = ['iarspider'] + + version('3.3.7', tag='COOL_3_3_7') + version('3.3.5', tag='COOL_3_3_5') + version('3.3.4', tag='COOL_3_3_4') + version('3.3.3', tag='COOL_3_3_3') + + # Spack-specific patches: + # * Create python/PyCool/_internal directory + # (only necessary for Spack builds, for some reason) + # * Explicitly request Boost components + patch('cool.patch', level=0) + + # BINARY_TAG is a combination of target, os, compiler name and build type (opt/dbg) + # If you override it, please also override it for CORAL + variant('binary_tag', default='auto', + description='Force specific BINARY_TAG, "auto" ' + + 'will determine the correct value at buildtime') + + depends_on('coral') + depends_on('root') + depends_on('vdt') + depends_on('xz') + depends_on('qt@5:', when='platform=linux') + depends_on('boost+chrono+system+thread') + depends_on('python') + + def determine_binary_tag(self): + # As far as I can tell from reading the source code, `binary_tag` + # can be almost arbitrary. The only real difference it makes is + # disabling oracle dependency for non-x86 platforms. + if self.spec.variants['binary_tag'].value != 'auto': + return self.spec.variants['binary_tag'].value + + binary_tag = str(self.spec.target.family) + \ + '-' + self.spec.os + \ + '-' + self.spec.compiler.name + str(self.spec.compiler.version.joined) + \ + ('-opt' if 'Rel' in self.spec.variants['build_type'].value else '-dbg') + + return binary_tag + + def cmake_args(self): + binary_tag = self.determine_binary_tag() + args = ['-DBINARY_TAG=' + binary_tag] + if self.spec['python'].version >= Version("3.0.0"): + args.append('-DLCG_python3=on') + + return args |