Skip to content
Closed
18 changes: 18 additions & 0 deletions repos/spack_repo/benchpark/packages/camp/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0

from spack.package import *
from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp


class Camp(BuiltinCamp):

variant("default_stream", default=False, description="Use default stream")

def cmake_args(self):
options = super().cmake_args()
options.append(self.define_from_variant("CAMP_USE_PLATFORM_DEFAULT_STREAM", "default_stream"))

return options
20 changes: 20 additions & 0 deletions repos/spack_repo/benchpark/packages/cce/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0

import os
import shutil
import sys

from spack.package import *
from spack_repo.builtin.packages.cce.package import Cce as BuiltinCce


class Cce(BuiltinCce):
def _standard_flag(self, *, language, standard):
flags = {
"cxx": {"11": "-std=c++11", "14": "-std=c++14", "17": "-std=c++17", "20": "-std=c++20"},
"c": {"99": "-std=c99", "11": "-std=c11"},
}
return flags[language][standard]
19 changes: 18 additions & 1 deletion repos/spack_repo/benchpark/packages/hypre/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,24 @@ def setup_build_environment(self, env):
env.append_flags("LDFLAGS", f"-L{spec['lapack'].prefix}/lib -l{libsci_name}")

class CMakeBuilder(HypreCMakeBuilder):
pass
root_cmakelists_dir = "src"

def cmake_args(self):
args = super().cmake_args()

if "+umpire" in self.spec:
umpire = self.spec["umpire"]
umpire_opts = umpire.prefix.include
umpire_libs = umpire.libs
if "^camp" in umpire:
umpire_libs += umpire["camp"].libs
if "^fmt" in umpire:
umpire_libs += umpire["fmt"].libs

args.append(self.define("TPL_UMPIRE_INCLUDE_DIRS", umpire_opts))
args.append(self.define("TPL_UMPIRE_LIBRARIES", umpire_libs))

return args

class AutotoolsBuilder(HypreAutotoolsBuilder):
pass
2 changes: 1 addition & 1 deletion repos/spack_repo/benchpark/packages/laghos/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class Laghos(MakefilePackage, CudaPackage, ROCmPackage):
# Recommended mfem version for laghos v1.x is: ^mfem@3.3.1-laghos-v1.0
depends_on("mfem@3.3.1-laghos-v1.0", when="@1.0,1.1")
depends_on("mfem+caliper", when="+caliper")
depends_on("mfem cxxstd=17")
depends_on("mfem cxxstd=20", when="@develop")

requires("^[virtuals=zlib-api] zlib")

Expand Down
25 changes: 8 additions & 17 deletions repos/spack_repo/benchpark/packages/mfem/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ class Mfem(BuiltinMfem):

variant("caliper", default=False, description="Build Caliper support")

depends_on("camp", when="+umpire")
depends_on("camp+default_stream", when="+umpire")
depends_on("camp@main", when="@develop +umpire")
depends_on("umpire@develop", when="@develop +umpire")

depends_on("camp+default_stream", when="+raja")
depends_on("camp@main", when="@develop +raja")
depends_on("raja@develop cxxstd=20", when="@develop +raja")

depends_on("caliper", when="+caliper")
depends_on("adiak", when="+caliper")
depends_on("hypre+shared", when="+mpi~cuda")
Expand All @@ -40,22 +47,6 @@ def yes_no(varstr):

options = super().get_make_config_options(spec, prefix)

if "+umpire" in spec:
umpire = spec["umpire"]
umpire_opts = umpire.headers
umpire_libs = umpire.libs
if "^camp" in umpire:
umpire_opts += umpire["camp"].headers
umpire_libs += umpire["camp"].libs
if "^fmt" in umpire:
umpire_opts += umpire["fmt"].headers
umpire_libs += umpire["fmt"].libs
options = [
"UMPIRE_OPT=%s" % umpire_opts.cpp_flags if opt.startswith("UMPIRE_OPT=")
else "UMPIRE_LIB=%s" % self.ld_flags_from_library_list(umpire_libs) if opt.startswith("UMPIRE_LIB=")
else opt for opt in options
]

options.append("MFEM_USE_CALIPER=%s" % yes_no("+caliper"))
if "+caliper" in self.spec:
options.append("CALIPER_DIR=%s" % self.spec["caliper"].prefix)
Expand Down
Loading