Add better changes for changing the krell packages from Package to CMakePackage.

This commit is contained in:
Jim Galarowicz 2017-07-17 12:20:38 -05:00
parent 1abb7ef04a
commit eb45879c0e
5 changed files with 388 additions and 410 deletions

View File

@ -67,6 +67,62 @@ class CbtfArgonavis(CMakePackage):
parallel = False
build_directory = 'build_cbtf_argonavis'
# We have converted from Package type to CMakePackage type for all the Krell projects.
# Comments from Pull Request (#4765):
# CMakePackage is completely different from the old Package class. Previously, you had
# a single install() phase to override. Now you have 3 phases: cmake(), build(), and install().
# By default, cmake() runs cmake ... with some common arguments, which you can add to by
# overriding cmake_args(). build() runs make, and install() runs make install.
# So you need to add the appropriate flags to cmake_args() and remove the calls to make.
# See any other CMakePackage for examples.
# CMakePackage is documented:
# http://spack.readthedocs.io/en/latest/spack.build_systems.html?highlight= \
# CMakePackage#module-spack.build_systems.cmake
def build_type(self):
if '+debug' in self.spec:
return 'Debug'
else:
return 'Release'
def cmake_args(self):
spec = self.spec
# Look for package installation information in the cbtf and cbtf-krell
# prefixes
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
cmake_args = []
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCUDA_DIR=%s' % spec['cuda'].prefix,
'-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
'-DCUPTI_DIR=%s' % join_path(
spec['cuda'].prefix + '/extras/CUPTI'),
'-DCUPTI_ROOT=%s' % join_path(
spec['cuda'].prefix + '/extras/CUPTI'),
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DBoost_DIR=%s' % spec['boost'].prefix,
'-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DBoost_NO_SYSTEM_PATHS=ON'])
# Add in the standard cmake arguments
cmake_args.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
return(cmake_args)
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
@ -94,45 +150,3 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix):
# Look for package installation information in the cbtf and cbtf-krell
# prefixes
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
with working_dir('build', create=True):
cmakeOptions = []
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCUDA_DIR=%s' % spec['cuda'].prefix,
'-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
'-DCUPTI_DIR=%s' % join_path(
spec['cuda'].prefix + '/extras/CUPTI'),
'-DCUPTI_ROOT=%s' % join_path(
spec['cuda'].prefix + '/extras/CUPTI'),
'-DPAPI_ROOT=%s' % spec['papi'].prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DBoost_DIR=%s' % spec['boost'].prefix,
'-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DBoost_NO_SYSTEM_PATHS=ON'])
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@ -104,6 +104,20 @@ class CbtfKrell(CMakePackage):
parallel = False
build_directory = 'build_cbtf_krell'
# We have converted from Package type to CMakePackage type for all the Krell projects.
# Comments from Pull Request (#4765):
# CMakePackage is completely different from the old Package class. Previously, you had
# a single install() phase to override. Now you have 3 phases: cmake(), build(), and install().
# By default, cmake() runs cmake ... with some common arguments, which you can add to by
# overriding cmake_args(). build() runs make, and install() runs make install.
# So you need to add the appropriate flags to cmake_args() and remove the calls to make.
# See any other CMakePackage for examples.
# CMakePackage is documented:
# http://spack.readthedocs.io/en/latest/spack.build_systems.html?highlight= \
# CMakePackage#module-spack.build_systems.cmake
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
@ -157,7 +171,14 @@ def set_mpi_cmakeOptions(self, spec, cmakeOptions):
cmakeOptions.extend(MPIOptions)
def install(self, spec, prefix):
def build_type(self):
if '+debug' in self.spec:
return 'Debug'
else:
return 'Release'
def cmake_args(self):
spec = self.spec
# Add in paths for finding package config files that tell us
# where to find these packages
@ -166,10 +187,8 @@ def install(self, spec, prefix):
# join_path(spec['dyninst'].prefix)
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
# Build cbtf-krell with cmake
with working_dir('build_cbtf_krell', create=True):
cmakeOptions = []
cmakeOptions.extend(
cmake_args = []
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
@ -182,110 +201,22 @@ def install(self, spec, prefix):
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
self.set_mpi_cmakeOptions(spec, cmake_args)
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
cmake_args.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
# Invoke cmake
cmake('..', *cmakeOptions)
return cmake_args
make("clean")
make()
make("install")
# def cmake(self, spec, prefix):
# cmake('..', *cmake_args)
# if '+cray' in spec:
# if 'cray' in self.spec.architecture:
# if '+runtime' in spec:
# with working_dir('build_cbtf_cray_runtime', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \
# -DTARGET_OS="cray" \
# -DRUNTIME_ONLY="true" \
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
# -DCBTF_DIR=${CBTF_ROOT} \
# -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
# -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
# -DBINUTILS_DIR=${KRELL_ROOT} \
# -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
# -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
# -DPAPI_DIR=${PAPI_ROOT} \
# -DDYNINST_DIR=${DYNINST_CN_ROOT} \
# -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# else:
# with working_dir('build_cbtf_cray_frontend', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \
# -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
# -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
# -DCBTF_DIR=${CBTF_ROOT} \
# -DRUNTIME_TARGET_OS="cray" \
# -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
# -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
# -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
# -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
# -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
# -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
# -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
# -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
# -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
# -DBOOST_ROOT=/${KRELL_ROOT} \
# -DXERCESC_DIR=/${KRELL_ROOT} \
# -DBINUTILS_DIR=/${KRELL_ROOT} \
# -DLIBMONITOR_DIR=${KRELL_ROOT} \
# -DLIBUNWIND_DIR=${KRELL_ROOT} \
# -DPAPI_DIR=${PAPI_ROOT} \
# -DDYNINST_DIR=${KRELL_ROOT} \
# -DMRNET_DIR=${KRELL_ROOT} \
# -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
# fi
#
# make("clean")
# make()
# make("install")
#
# elif '+mic' in spec:
# if '+runtime' in spec:
# with working_dir('build_cbtf_mic_runtime', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
#
# else:
# with working_dir('build_cbtf_cray_frontend', create=True):
# python_vers='%d.%d' % spec['python'].version[:2]
# cmake .. \
# fi
#
# else:
# # Build cbtf-krell with cmake
# with working_dir('build_cbtf_krell', create=True):
# cmake('..',
# '-DCMAKE_BUILD_TYPE=Debug',
# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
# '-DLIBUNWIND_DIR=%s'% spec['libunwind'].prefix,
# '-DPAPI_DIR=%s' % spec['papi'].prefix,
# '-DBOOST_DIR=%s' % spec['boost'].prefix,
# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
# *std_cmake_args)
#
# make("clean")
# make()
# make("install")
#
# fi
#
# def build(self, spec, prefix):
# make(parallel=False)
# def install(self, spec, prefix):
# # Install cbtf-krell

View File

@ -64,6 +64,54 @@ class CbtfLanl(CMakePackage):
parallel = False
build_directory = 'build_cbtf_lanl'
# We have converted from Package type to CMakePackage type for all the Krell projects.
# Comments from Pull Request (#4765):
# CMakePackage is completely different from the old Package class. Previously, you had
# a single install() phase to override. Now you have 3 phases: cmake(), build(), and install().
# By default, cmake() runs cmake ... with some common arguments, which you can add to by
# overriding cmake_args(). build() runs make, and install() runs make install.
# So you need to add the appropriate flags to cmake_args() and remove the calls to make.
# See any other CMakePackage for examples.
# CMakePackage is documented:
# http://spack.readthedocs.io/en/latest/spack.build_systems.html?highlight= \
# CMakePackage#module-spack.build_systems.cmake
def build_type(self):
if '+debug' in self.spec:
return 'Debug'
else:
return 'Release'
def cmake_args(self):
spec = self.spec
# Add in paths for finding package config files that tell us where to
# find these packages
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
cmake_args = []
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmake_args.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
return(cmake_args)
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
@ -90,35 +138,3 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix):
# Add in paths for finding package config files that tell us where to
# find these packages
cmake_prefix_path = join_path(
spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
with working_dir('build', create=True):
cmakeOptions = []
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DCBTF_DIR=%s' % spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")

View File

@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@ -72,6 +72,76 @@ class Cbtf(CMakePackage):
parallel = False
build_directory = 'build_cbtf'
# We have converted from Package type to CMakePackage type for all the Krell projects.
# Comments from Pull Request (#4765):
# CMakePackage is completely different from the old Package class. Previously, you had
# a single install() phase to override. Now you have 3 phases: cmake(), build(), and install().
# By default, cmake() runs cmake ... with some common arguments, which you can add to by
# overriding cmake_args(). build() runs make, and install() runs make install.
# So you need to add the appropriate flags to cmake_args() and remove the calls to make.
# See any other CMakePackage for examples.
# CMakePackage is documented:
# http://spack.readthedocs.io/en/latest/spack.build_systems.html?highlight= \
# CMakePackage#module-spack.build_systems.cmake
def build_type(self):
if '+debug' in self.spec:
return 'Debug'
else:
return 'Release'
def cmake_args(self):
spec = self.spec
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
# in system paths (or other locations outside of BOOST_ROOT
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
# Defaults to OFF.
if '+runtime' in spec:
# Install message tag include file for use in Intel MIC
# cbtf-krell build
# FIXME
cmake_args = []
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmake_args.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
else:
cmake_args = []
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmake_args.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
return(cmake_args)
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the options that will
# enable the cbtf-krell built type settings
@ -95,59 +165,11 @@ def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
cmakeOptions.extend(BuildTypeOptions)
def install(self, spec, prefix):
with working_dir('build', create=True):
# Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
# in system paths (or other locations outside of BOOST_ROOT
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
# Defaults to OFF.
if '+runtime' in spec:
# Install message tag include file for use in Intel MIC
# cbtf-krell build
# FIXME
cmakeOptions = []
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
else:
cmakeOptions = []
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DBoost_NO_SYSTEM_PATHS=TRUE',
'-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
'-DBOOST_ROOT=%s' % spec['boost'].prefix,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DCMAKE_MODULE_PATH=%s' % join_path(
prefix.share, 'KrellInstitute', 'cmake')])
# Add in the standard cmake arguments
cmakeOptions.extend(std_cmake_args)
# Adjust the standard cmake arguments to what we want the build
# type, etc to be
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
# Invoke cmake
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")
# def install(self, spec, prefix):
#
# # Invoke cmake
# cmake('..', *cmakeOptions)
#
# make("clean")
# make()
# make("install")

View File

@ -70,8 +70,6 @@ class Openspeedshop(CMakePackage):
# url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.3.tar.gz"
# version('2.3', '517a7798507241ad8abd8b0626a4d2cf')
parallel = False
variant('offline', default=False,
description="build with offline instrumentor enabled.")
variant('cbtf', default=True,
@ -140,6 +138,160 @@ class Openspeedshop(CMakePackage):
depends_on("cbtf-argonavis", when='+cbtf+cuda')
depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf')
parallel = False
build_directory = 'build_openspeedshop'
# We have converted from Package type to CMakePackage type for all the Krell projects.
# Comments from Pull Request (#4765):
# CMakePackage is completely different from the old Package class. Previously, you had
# a single install() phase to override. Now you have 3 phases: cmake(), build(), and install().
# By default, cmake() runs cmake ... with some common arguments, which you can add to by
# overriding cmake_args(). build() runs make, and install() runs make install.
# So you need to add the appropriate flags to cmake_args() and remove the calls to make.
# See any other CMakePackage for examples.
# CMakePackage is documented:
# http://spack.readthedocs.io/en/latest/spack.build_systems.html?highlight= \
# CMakePackage#module-spack.build_systems.cmake
def build_type(self):
if '+debug' in self.spec:
return 'Debug'
else:
return 'Release'
def cmake_args(self):
spec = self.spec
if '+offline' in spec:
instrumentor_setting = "offline"
if '+runtime' in spec:
cmake_args = []
cmake_args.extend([
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmake_args)
cmake_args.extend(std_cmake_args)
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
else:
cmake_prefix_path = join_path(spec['dyninst'].prefix)
cmake_args = []
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DLIBMONITOR_DIR=%s'
% spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s'
% spec['libunwind'].prefix,
'-DPAPI_DIR=%s'
% spec['papi'].prefix,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DQTLIB_DIR=%s'
% spec['qt'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmake_args)
cmake_args.extend(std_cmake_args)
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
elif '+cbtf' in spec:
instrumentor_setting = "cbtf"
# resolve_symbols = "symtabapi"
cmake_prefix_path = join_path(spec['cbtf'].prefix) \
+ ':' + join_path(spec['cbtf-krell'].prefix)\
+ ':' + join_path(spec['dyninst'].prefix)
if '+runtime' in spec:
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
# Adjust the build options to the
# favored ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
else:
cmake_args = []
# Appends base options to cmake_args
self.set_defaultbase_cmakeOptions(spec, cmake_args)
if '+noqt3gui' in self.spec:
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
else:
cmake_args.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DQTLIB_DIR=%s'
% spec['qt'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmake_args)
return(cmake_args)
def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
# Sets build type parameters into cmakeOptions the
# options that will enable the cbtf-krell built type settings
@ -272,160 +424,3 @@ def setup_environment(self, spack_env, run_env):
if '+openmpi' in self.spec:
run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi')
def install(self, spec, prefix):
if '+offline' in spec:
instrumentor_setting = "offline"
if '+runtime' in spec:
with working_dir('build_runtime', create=True):
cmakeOptions = []
cmakeOptions.extend([
'-DCMAKE_INSTALL_PREFIX=%s' % prefix,
'-DINSTRUMENTOR=%s' % instrumentor_setting,
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(std_cmake_args)
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")
else:
cmake_prefix_path = join_path(spec['dyninst'].prefix)
with working_dir('build', create=True):
cmakeOptions = []
# Appends base options to cmakeOptions
self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DLIBMONITOR_DIR=%s'
% spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s'
% spec['libunwind'].prefix,
'-DPAPI_DIR=%s'
% spec['papi'].prefix,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DQTLIB_DIR=%s'
% spec['qt'].prefix])
# Add any MPI implementations coming from variant settings
self.set_mpi_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(std_cmake_args)
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")
elif '+cbtf' in spec:
instrumentor_setting = "cbtf"
# resolve_symbols = "symtabapi"
cmake_prefix_path = join_path(spec['cbtf'].prefix) \
+ ':' + join_path(spec['cbtf-krell'].prefix)\
+ ':' + join_path(spec['dyninst'].prefix)
if '+runtime' in spec:
with working_dir('build_cbtf_runtime', create=True):
cmakeOptions = []
# Appends base options to cmakeOptions
self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
# Adjust the build options to the
# favored ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")
else:
with working_dir('build_cbtf', create=True):
cmakeOptions = []
# Appends base options to cmakeOptions
self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
if '+noqt3gui' in self.spec:
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
else:
cmakeOptions.extend(
['-DCMAKE_INSTALL_PREFIX=%s'
% prefix,
'-DCMAKE_PREFIX_PATH=%s'
% cmake_prefix_path,
'-DINSTRUMENTOR=%s'
% instrumentor_setting,
'-DSQLITE3_DIR=%s'
% spec['sqlite'].prefix,
'-DCBTF_DIR=%s'
% spec['cbtf'].prefix,
'-DCBTF_KRELL_DIR=%s'
% spec['cbtf-krell'].prefix,
'-DQTLIB_DIR=%s'
% spec['qt'].prefix,
'-DMRNET_DIR=%s'
% spec['mrnet'].prefix])
# Adjust the build options to the favored
# ones for this build
self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
cmake('..', *cmakeOptions)
make("clean")
make()
make("install")