From 47629bb2a71ffbf8942b73a15e73c8e1c2c1b73c Mon Sep 17 00:00:00 2001 From: Stephen Herbener Date: Thu, 16 Nov 2023 13:36:22 -0700 Subject: [PATCH 1/4] Added recent versions to ecflow/package.py, as well as added a cxxstd variant that is needed to set BOOST_NO_CXX98_FUNCTION_BASE appropriately when building with C++17 standard. --- var/spack/repos/builtin/packages/ecflow/package.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py index 37bde293ecfd96..94a3f810b5e73c 100644 --- a/var/spack/repos/builtin/packages/ecflow/package.py +++ b/var/spack/repos/builtin/packages/ecflow/package.py @@ -24,6 +24,7 @@ class Ecflow(CMakePackage): maintainers("climbfuji") # https://confluence.ecmwf.int/download/attachments/8650755/ecFlow-5.8.3-Source.tar.gz?api=v2 + version("5.11.4", sha256="4836a876277c9a65a47a3dc87cae116c3009699f8a25bab4e3afabf160bcf212") version("5.8.4", sha256="bc628556f8458c269a309e4c3b8d5a807fae7dfd415e27416fe9a3f544f88951") version("5.8.3", sha256="1d890008414017da578dbd5a95cb1b4d599f01d5a3bb3e0297fe94a87fbd81a6") version("4.13.0", sha256="c743896e0ec1d705edd2abf2ee5a47f4b6f7b1818d8c159b521bdff50a403e39") @@ -37,6 +38,14 @@ class Ecflow(CMakePackage): variant("ui", default=False, description="Enable ecflow_ui") variant("pic", default=False, description="Enable position-independent code (PIC)") + variant( + "cxxstd", + default="default", + values=("default", "98", "11", "14", "17", "20"), + multi=False, + description="Use the specified C++ standard when building.", + ) + extends("python") depends_on("python@3:", type=("build", "run")) @@ -100,6 +109,11 @@ def cmake_args(self): ssl_libs.extend(spec["zlib"].libs) args.append(self.define("OPENSSL_CRYPTO_LIBRARY", ";".join(ssl_libs))) + if "cxxstd" in spec.variants: + cxxstd = spec.variants["cxxstd"].value + if ((cxxstd == "17") or (cxxstd == "20")): + args.append("-DCMAKE_CXX_FLAGS=-DBOOST_NO_CXX98_FUNCTION_BASE") + return args # A recursive link in the ecflow source code causes the binary cache From 0e334b18c8ef15d6e517f5b355c23b5e517536c2 Mon Sep 17 00:00:00 2001 From: Stephen Herbener Date: Thu, 16 Nov 2023 14:12:30 -0700 Subject: [PATCH 2/4] Fixed pep8 style error in the ecflow package.py script. --- var/spack/repos/builtin/packages/ecflow/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py index 94a3f810b5e73c..0c781bb0c3cffa 100644 --- a/var/spack/repos/builtin/packages/ecflow/package.py +++ b/var/spack/repos/builtin/packages/ecflow/package.py @@ -111,7 +111,7 @@ def cmake_args(self): if "cxxstd" in spec.variants: cxxstd = spec.variants["cxxstd"].value - if ((cxxstd == "17") or (cxxstd == "20")): + if (cxxstd == "17") or (cxxstd == "20"): args.append("-DCMAKE_CXX_FLAGS=-DBOOST_NO_CXX98_FUNCTION_BASE") return args From c33a158ffe3bc7b7dfba9afb6ee8f02ab655fa9b Mon Sep 17 00:00:00 2001 From: Stephen Herbener Date: Thu, 16 Nov 2023 14:35:15 -0700 Subject: [PATCH 3/4] Removed unnecessary comment --- var/spack/repos/builtin/packages/ecflow/package.py | 1 - 1 file changed, 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py index 0c781bb0c3cffa..c498a45318db0d 100644 --- a/var/spack/repos/builtin/packages/ecflow/package.py +++ b/var/spack/repos/builtin/packages/ecflow/package.py @@ -23,7 +23,6 @@ class Ecflow(CMakePackage): maintainers("climbfuji") - # https://confluence.ecmwf.int/download/attachments/8650755/ecFlow-5.8.3-Source.tar.gz?api=v2 version("5.11.4", sha256="4836a876277c9a65a47a3dc87cae116c3009699f8a25bab4e3afabf160bcf212") version("5.8.4", sha256="bc628556f8458c269a309e4c3b8d5a807fae7dfd415e27416fe9a3f544f88951") version("5.8.3", sha256="1d890008414017da578dbd5a95cb1b4d599f01d5a3bb3e0297fe94a87fbd81a6") From a3dc7097aeec10afa71cba96e403ff366f3d6f1f Mon Sep 17 00:00:00 2001 From: Stephen Herbener Date: Thu, 16 Nov 2023 16:29:11 -0700 Subject: [PATCH 4/4] Removed cxxstd variant since the ecflow cmake configuration was already specifying to use the c++17 standard for newer versions. The use of the BOOST_NO_CXX98_FUNCTION_BASE define is now triggered by the ecflow version. --- var/spack/repos/builtin/packages/ecflow/package.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py index c498a45318db0d..ea20062825d8a0 100644 --- a/var/spack/repos/builtin/packages/ecflow/package.py +++ b/var/spack/repos/builtin/packages/ecflow/package.py @@ -37,14 +37,6 @@ class Ecflow(CMakePackage): variant("ui", default=False, description="Enable ecflow_ui") variant("pic", default=False, description="Enable position-independent code (PIC)") - variant( - "cxxstd", - default="default", - values=("default", "98", "11", "14", "17", "20"), - multi=False, - description="Use the specified C++ standard when building.", - ) - extends("python") depends_on("python@3:", type=("build", "run")) @@ -108,10 +100,8 @@ def cmake_args(self): ssl_libs.extend(spec["zlib"].libs) args.append(self.define("OPENSSL_CRYPTO_LIBRARY", ";".join(ssl_libs))) - if "cxxstd" in spec.variants: - cxxstd = spec.variants["cxxstd"].value - if (cxxstd == "17") or (cxxstd == "20"): - args.append("-DCMAKE_CXX_FLAGS=-DBOOST_NO_CXX98_FUNCTION_BASE") + if self.spec.satisfies("@5.8.3:"): + args.append("-DCMAKE_CXX_FLAGS=-DBOOST_NO_CXX98_FUNCTION_BASE") return args