diff options
author | Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com> | 2023-09-12 18:23:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-12 18:23:48 -0400 |
commit | ed3f5fba1ff6a3c55e151b7176d69488fe895312 (patch) | |
tree | 8716050ececefdf44bc45b7eaa14407b398a6c3e | |
parent | d0e8a4d26fc08cc57acda17f1780f0e55e34f317 (diff) | |
download | spack-ed3f5fba1ff6a3c55e151b7176d69488fe895312.tar.gz spack-ed3f5fba1ff6a3c55e151b7176d69488fe895312.tar.bz2 spack-ed3f5fba1ff6a3c55e151b7176d69488fe895312.tar.xz spack-ed3f5fba1ff6a3c55e151b7176d69488fe895312.zip |
Update g2c recipe: add develop version and misc. variants (#39965)
* Update g2c recipe: add develop version and misc. variants
* add testing to g2c
* Update package.py
-rw-r--r-- | var/spack/repos/builtin/packages/g2c/package.py | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/g2c/package.py b/var/spack/repos/builtin/packages/g2c/package.py index b9bb3346b7..f1b7c22bb3 100644 --- a/var/spack/repos/builtin/packages/g2c/package.py +++ b/var/spack/repos/builtin/packages/g2c/package.py @@ -13,22 +13,70 @@ class G2c(CMakePackage): homepage = "https://github.com/NOAA-EMC/NCEPLIBS-g2c" url = "https://github.com/NOAA-EMC/NCEPLIBS-g2c/archive/refs/tags/v1.6.4.tar.gz" + git = "https://github.com/NOAA-EMC/NCEPLIBS-g2c" maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") - variant("png", default=True, description="Use PNG library") - variant("jasper", default=True, description="Use Jasper library") - variant("openjpeg", default=False, description="Use OpenJPEG library") - + version("develop", branch="develop") version("1.7.0", sha256="73afba9da382fed73ed8692d77fa037bb313280879cd4012a5e5697dccf55175") version("1.6.4", sha256="5129a772572a358296b05fbe846bd390c6a501254588c6a223623649aefacb9d") version("1.6.2", sha256="b5384b48e108293d7f764cdad458ac8ce436f26be330b02c69c2a75bb7eb9a2c") + variant("png", default=True, description="Use PNG library") + variant("jasper", default=True, description="Use Jasper library") + variant("openjpeg", default=False, description="Use OpenJPEG library") + variant("pic", default=True, description="Build with position-independent-code") + variant( + "libs", + default=("shared", "static"), + values=("shared", "static"), + multi=True, + description="Build shared libs, static libs or both", + when="@1.7:", + ) + variant( + "pthreads", + default=False, + description="Turn on thread-safety with pthreads", + when="@develop", + ) + variant( + "utils", + default=True, + description="Build and install some utility programs", + when="@develop", + ) + depends_on("libpng", when="+png") depends_on("jasper", when="+jasper") depends_on("openjpeg", when="+openjpeg") + conflicts("+jasper +openjpeg", msg="Either Jasper or OpenJPEG should be used, not both") + + def cmake_args(self): + args = [ + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define("BUILD_SHARED_LIBS", self.spec.satisfies("libs=shared")), + self.define("BUILD_STATIC_LIBS", self.spec.satisfies("libs=static")), + self.define_from_variant("USE_PNG", "png"), + self.define_from_variant("USE_Jasper", "jasper"), + self.define_from_variant("USE_OpenJPEG", "openjpeg"), + self.define_from_variant("PTHREADS", "pthreads"), + self.define_from_variant("UTILS", "utils"), + self.define("BUILD_TESTING", self.run_tests), + ] + + return args + def setup_run_environment(self, env): - lib = find_libraries("libg2c", root=self.prefix, shared=False, recursive=True) + if self.spec.satisfies("@:1.6"): + shared = False + else: + shared = self.spec.satisfies("libs=shared") + lib = find_libraries("libg2c", root=self.prefix, shared=shared, recursive=True) env.set("G2C_LIB", lib[0]) env.set("G2C_INC", join_path(self.prefix, "include")) + + def check(self): + with working_dir(self.builder.build_directory): + make("test") |