From 8372726a882b53d9871fbe6e67e9ba4b2c32ec13 Mon Sep 17 00:00:00 2001 From: Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com> Date: Wed, 5 Jul 2023 01:45:38 -0700 Subject: ip: add v4.1.0, and additional variants (#38526) --- var/spack/repos/builtin/packages/ip/package.py | 45 ++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py index b92fc2b85d..d34dc2abd8 100644 --- a/var/spack/repos/builtin/packages/ip/package.py +++ b/var/spack/repos/builtin/packages/ip/package.py @@ -16,6 +16,7 @@ class Ip(CMakePackage): maintainers("t-brown", "AlexanderRichert-NOAA", "edwardhartnett", "Hang-Lei-NOAA") + version("4.1.0", sha256="b83ca037d9a5ad3eb0fb1acfe665c38b51e01f6bd73ce9fb8bb2a14f5f63cdbe") version("4.0.0", sha256="a2ef0cc4e4012f9cb0389fab6097407f4c623eb49772d96eb80c44f804aa86b8") version( "3.3.3", @@ -23,10 +24,50 @@ class Ip(CMakePackage): preferred=True, ) + variant("openmp", description="Enable OpenMP threading", default=True) + variant("pic", default=True, description="Build with position-independent-code") + variant("shared", default=False, description="Build shared library", when="@4.1:") + variant( + "precision", + default=["4", "d"], + values=["4", "d"], + multi=True, + description="Set precision (_4/_d library versions)", + when="@4.1:", + ) + depends_on("sp") + depends_on("sp@:2.3.3", when="@:4.0") + + def cmake_args(self): + args = [ + self.define_from_variant("OPENMP", "openmp"), + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + ] + + if self.spec.satisfies("@4:"): + args.append(self.define("BUILD_TESTING", "NO")) + else: + args.append(self.define("ENABLE_TESTS", "NO")) + + if self.spec.satisfies("@4.1:"): + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + for prec in ["4", "d"]: + if not self.spec.satisfies("precision=" + prec): + args += ["-DBUILD_%s:BOOL=OFF" % prec.upper()] + + return args def setup_run_environment(self, env): - for suffix in ("4", "8", "d"): - lib = find_libraries("libip_4", root=self.prefix, shared=False, recursive=True) + suffixes = ( + self.spec.variants["precision"].value + if self.spec.satisfies("@4.1:") + else ["4", "8", "d"] + ) + shared = False if self.spec.satisfies("@:4.0") else self.spec.satisfies("+shared") + for suffix in suffixes: + lib = find_libraries( + "libip_" + suffix, root=self.prefix, shared=shared, recursive=True + ) env.set("IP_LIB" + suffix, lib[0]) env.set("IP_INC" + suffix, join_path(self.prefix, "include_" + suffix)) -- cgit v1.2.3-70-g09d2