summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Van Essen <vanessen1@llnl.gov>2023-11-01 15:18:57 -0400
committerGitHub <noreply@github.com>2023-11-01 13:18:57 -0600
commitd05dc8a468ff8acc9700128cc6be0f9fd40e3d8a (patch)
tree15680f3683a56650d45a18776d8da5883ad346a1
parentafa2a2566e84c022eab5607753201697c7e888c4 (diff)
downloadspack-d05dc8a468ff8acc9700128cc6be0f9fd40e3d8a.tar.gz
spack-d05dc8a468ff8acc9700128cc6be0f9fd40e3d8a.tar.bz2
spack-d05dc8a468ff8acc9700128cc6be0f9fd40e3d8a.tar.xz
spack-d05dc8a468ff8acc9700128cc6be0f9fd40e3d8a.zip
LBANN: add explicit variant for shared builds (#40808)
-rw-r--r--var/spack/repos/builtin/packages/lbann/package.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index b5ed6df831..faae710921 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -156,6 +156,9 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage):
variant("asan", default=False, description="Build with support for address-sanitizer")
variant("unit_tests", default=False, description="Support for unit testing")
variant("caliper", default=False, description="Support for instrumentation with caliper")
+ variant(
+ "shared", default=True, sticky=True, description="Enables the build of shared libraries"
+ )
# LBANN benefits from high performance linkers, but passing these in as command
# line options forces the linker flags to unnecessarily propagate to all
@@ -241,6 +244,8 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on("dihydrogen@:0.0,0.2:", when="@:0.90,0.102: +dihydrogen")
conflicts("~dihydrogen", when="+distconv")
+ depends_on("hdf5+mpi", when="+distconv")
+
for arch in CudaPackage.cuda_arch_values:
depends_on("hydrogen cuda_arch=%s" % arch, when="+cuda cuda_arch=%s" % arch)
depends_on("aluminum cuda_arch=%s" % arch, when="+al +cuda cuda_arch=%s" % arch)
@@ -344,6 +349,11 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage):
return sys_type
@property
+ def libs(self):
+ shared = True if "+shared" in self.spec else False
+ return find_libraries("liblbann", root=self.prefix, shared=shared, recursive=True)
+
+ @property
def cache_name(self):
hostname = socket.gethostname()
# Get a hostname that has no node identifier
@@ -360,6 +370,7 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage):
spec = self.spec
entries = super().initconfig_compiler_entries()
entries.append(cmake_cache_string("CMAKE_CXX_STANDARD", "17"))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", "+shared" in spec))
if not spec.satisfies("^cmake@3.23.0"):
# There is a bug with using Ninja generator in this version
# of CMake