COOL: add new package (#23006)
Co-authored-by: George Hartzell <hartzell@alerce.com>
This commit is contained in:
parent
f1d2ab38a0
commit
e4edbe89cc
19
var/spack/repos/builtin/packages/cool/cool.patch
Normal file
19
var/spack/repos/builtin/packages/cool/cool.patch
Normal file
@ -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)
|
||||
|
64
var/spack/repos/builtin/packages/cool/package.py
Normal file
64
var/spack/repos/builtin/packages/cool/package.py
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user