Add Gaudi and RELAX packages (#9194)
* Add a RELAX package * Add a Gaudi package
This commit is contained in:
parent
54f94e5828
commit
6e95e06bda
68
var/spack/repos/builtin/packages/gaudi/package.py
Normal file
68
var/spack/repos/builtin/packages/gaudi/package.py
Normal file
@ -0,0 +1,68 @@
|
||||
# Copyright 2013-2018 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 Gaudi(CMakePackage):
|
||||
"""An experiment-independent HEP event data processing framework"""
|
||||
|
||||
homepage = "http://gaudi.web.cern.ch/gaudi/"
|
||||
git = "https://gitlab.cern.ch/gaudi/Gaudi.git"
|
||||
|
||||
version('develop', branch='master')
|
||||
version('30.5', commit='2c70e73ee5b543b26197b90dd59ea4e4d359d230')
|
||||
|
||||
patch('use-xenv-master.diff')
|
||||
|
||||
variant('tests', default=False,
|
||||
description='Prepare to run the test suite')
|
||||
variant('optional', default=False,
|
||||
description='Build most optional components')
|
||||
variant('vtune', default=False,
|
||||
description='Build with Intel VTune profiler support')
|
||||
|
||||
# These dependencies are needed for a minimal Gaudi build
|
||||
depends_on('boost@1.67.0: +python')
|
||||
depends_on('cmake', type='build')
|
||||
depends_on('intel-tbb')
|
||||
depends_on('libuuid')
|
||||
depends_on('python@:2.99.99')
|
||||
depends_on('range-v3')
|
||||
depends_on('root +python +root7 +ssl +tbb +threads')
|
||||
depends_on('zlib')
|
||||
|
||||
# These dependencies are required by the Gaudi test suite
|
||||
depends_on('aida', when='+tests')
|
||||
depends_on('clhep', when='+tests')
|
||||
depends_on('cppunit', when='+tests')
|
||||
depends_on('gdb', when='+tests')
|
||||
depends_on('gperftools', when='+tests')
|
||||
depends_on('heppdt@:2.99.99', when='+tests')
|
||||
depends_on('py-networkx', when='+tests')
|
||||
depends_on('py-nose', when='+tests')
|
||||
depends_on('py-setuptools', when='+tests')
|
||||
depends_on('relax', when='+tests')
|
||||
depends_on('xerces-c', when='+tests')
|
||||
|
||||
# Adding these dependencies triggers the build of most optional components
|
||||
depends_on('aida', when='+optional')
|
||||
depends_on('clhep', when='+optional')
|
||||
depends_on('cppgsl', when='+optional')
|
||||
depends_on('cppunit', when='+optional')
|
||||
depends_on('doxygen +graphviz', when='+optional')
|
||||
depends_on('gperftools', when='+optional')
|
||||
depends_on('gsl', when='+optional')
|
||||
depends_on('heppdt@:2.99.99', when='+optional')
|
||||
depends_on('jemalloc', when='+optional')
|
||||
depends_on('libpng', when='+optional')
|
||||
depends_on('libunwind', when='+optional')
|
||||
depends_on('relax', when='+optional')
|
||||
depends_on('xerces-c', when='+optional')
|
||||
# NOTE: pocl cannot be added as a minimal OpenCL implementation because
|
||||
# ROOT does not like being exposed to LLVM symbols.
|
||||
|
||||
# The Intel VTune dependency is taken aside because it requires a license
|
||||
depends_on('intel-parallel-studio -mpi +vtune', when='+vtune')
|
13
var/spack/repos/builtin/packages/gaudi/use-xenv-master.diff
Normal file
13
var/spack/repos/builtin/packages/gaudi/use-xenv-master.diff
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/cmake/GaudiProjectConfig.cmake b/cmake/GaudiProjectConfig.cmake
|
||||
index ab1a24e1d..dc938da79 100644
|
||||
--- a/cmake/GaudiProjectConfig.cmake
|
||||
+++ b/cmake/GaudiProjectConfig.cmake
|
||||
@@ -410,7 +410,7 @@ macro(gaudi_project project version)
|
||||
# Avoid interference from user environment
|
||||
unset(ENV{GIT_DIR})
|
||||
unset(ENV{GIT_WORK_TREE})
|
||||
- execute_process(COMMAND git clone -b 0.0.1 https://gitlab.cern.ch/gaudi/xenv.git ${CMAKE_BINARY_DIR}/contrib/xenv)
|
||||
+ execute_process(COMMAND git clone https://gitlab.cern.ch/gaudi/xenv.git ${CMAKE_BINARY_DIR}/contrib/xenv)
|
||||
endif()
|
||||
# I'd like to generate the script with executable permission, but I only
|
||||
# found this workaround: https://stackoverflow.com/a/45515418
|
37
var/spack/repos/builtin/packages/relax/package.py
Normal file
37
var/spack/repos/builtin/packages/relax/package.py
Normal file
@ -0,0 +1,37 @@
|
||||
# Copyright 2013-2018 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 Relax(CMakePackage):
|
||||
"""A set of Reflex libraries for the most common used general data types in
|
||||
the LHC Computing Grid"""
|
||||
|
||||
homepage = "https://twiki.cern.ch/twiki/bin/view/LCG/RELAX"
|
||||
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/RELAX-1.tar.gz"
|
||||
|
||||
# The RELAX project stopped using a fixed release model since it moved to
|
||||
# ROOT 6, so any package checksum is a lie...
|
||||
version('root6')
|
||||
|
||||
depends_on('clhep')
|
||||
depends_on('gsl')
|
||||
depends_on('hepmc@:2.99.99')
|
||||
depends_on('root@6.0.0:')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
cxxstd = self.spec['root'].variants['cxxstd'].value
|
||||
hepmc_lib = spec['hepmc'].prefix.lib.join('libHepMC.so')
|
||||
|
||||
args = [
|
||||
'-DCMAKE_CXX_STANDARD={0}'.format(cxxstd),
|
||||
'-DROOT_BINARY_PATH={0}'.format(spec['root'].prefix.bin),
|
||||
'-DHEPMC_INCLUDE_DIR={0}'.format(spec['hepmc'].prefix.include),
|
||||
'-DHEPMC_LIBRARIES={0}'.format(hepmc_lib)
|
||||
]
|
||||
|
||||
return args
|
Loading…
Reference in New Issue
Block a user