spack/var/spack/repos/builtin/packages/coevp/package.py
Harmen Stoppels fce95e2efb
license year bump (#34921)
* license bump year
* fix black issues of modified files
* mypy
* fix 2021 -> 2023
2023-01-18 14:30:17 -08:00

79 lines
2.9 KiB
Python

# Copyright 2013-2023 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.package import *
class Coevp(MakefilePackage):
"""CoEVP is a scale-bridging proxy application for embedded viscoplasticity
applications. It is created and maintained by The Exascale Co-Design Center
for Materials in Extreme Environments (ExMatEx). The code is intended to
serve as a vehicle for co-design by allowing others to extend and/or
reimplement it as needed to test performance of new architectures,
programming models, etc.
Due to the size and complexity of the studied models, as well as
restrictions on distribution, the currently available LULESH proxy
application provides the coarse-scale model implementation and the ASPA
proxy application provides the adaptive sampling support."""
homepage = "https://github.com/exmatex/CoEVP"
git = "https://github.com/exmatex/CoEVP.git"
version("develop", branch="master")
variant("mpi", default=True, description="Build with MPI Support")
variant("silo", default=False, description="Build with silo Support")
variant("flann", default=False, description="Build with flann Support")
depends_on("mpi", when="+mpi")
depends_on("silo", when="+silo")
depends_on("flann@1.8.1", when="+flann")
depends_on("lapack")
tags = ["proxy-app"]
@property
def build_targets(self):
targets = []
if "+mpi" in self.spec:
targets.append("COEVP_MPI=yes")
else:
targets.append("COEVP_MPI=no")
if "+flann" in self.spec:
targets.append("FLANN=yes")
targets.append("FLANN_TARGET=")
targets.append(
"FLANN_LOC={0}".format(join_path(self.spec["flann"].prefix.include, "flann"))
)
else:
targets.append("FLANN=no")
targets.append("REDIS=no")
if "+silo" in self.spec:
targets.append("SILO=yes")
targets.append("SILO_TARGET=")
targets.append("SILO_LOC={0}".format(self.spec["silo"].prefix))
else:
targets.append("SILO=no")
targets.append("TWEMPROXY=no")
targets.append("LAPACK=%s" % self.spec["lapack"].libs.ld_flags)
return targets
def edit(self, spec, prefix):
# libquadmath is only available x86_64 and powerle
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85440
if self.spec.target.family not in ["x86_64", "ppc64le"]:
comps = join_path("LULESH", "Makefile")
filter_file("-lquadmath", "", comps)
def install(self, spec, prefix):
mkdir(prefix.bin)
mkdir(prefix.doc)
install("LULESH/lulesh", prefix.bin)
install("COPYRIGHT", prefix.doc)
install("README.md", prefix.doc)
install("CoEVP.pdf", prefix.doc)