helics: update v3 options and add missing versions (#32121)
* helics: update v3 options and add missing versions * helics: allow using openssl 3.x for encryption support * helics: fix style errors * helics: Apply suggestion from code review Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
This commit is contained in:
parent
2860f2f70a
commit
5edb0fe96a
1 changed files with 46 additions and 11 deletions
|
@ -23,6 +23,9 @@ class Helics(CMakePackage):
|
|||
version("master", branch="main", submodules=True)
|
||||
version("3.2.1", sha256="9df8a7a687c7cf8ea6f157e748e57e8bf5cefa9a49a24e7c590fe9191291da95")
|
||||
version("3.2.0", sha256="b9cec50b9e767113b2e04a5623437885f76196cc9a58287e21f5c0f62c32cca1")
|
||||
version("3.1.2", sha256="eed5daff8ce131c86e972383a1e67933ddac97be5345d41b41ef71663eb097bb")
|
||||
version("3.1.1", sha256="65791ddede5f06aff58daa7cf0b9d244baa6c4e08e119ca010ddcc6137a479d9")
|
||||
version("3.1.0", sha256="b6f97c8ce3c4c18dce8e868a366782b726077165204d631a5c580682f872ffd7")
|
||||
version("3.0.1", sha256="512afc18e25311477ec82804de74c47a674aa213d2173c276b6caf555b8421dd")
|
||||
version("3.0.0", sha256="928687e95d048f3f9f9d67cec4ac20866a98cbc00090a2d62abaa11c2a20958c")
|
||||
version("2.8.1", sha256="9485091fb1bf5d0dd3b21a2641dd78051bbf5374cd823425e458053abafdfa1f")
|
||||
|
@ -43,7 +46,8 @@ class Helics(CMakePackage):
|
|||
description="CMake build type",
|
||||
values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"),
|
||||
)
|
||||
variant("apps", default=True, description="Install the HELICS apps")
|
||||
variant("apps", default=True, description="Install the HELICS apps executables")
|
||||
variant("apps_lib", default=True, description="Install the HELICS apps library")
|
||||
variant("benchmarks", default=False, description="Install the HELICS benchmarks")
|
||||
variant("c_shared", default=True, description="Install the C shared library")
|
||||
variant("cxx_shared", default=True, description="Install the CXX shared library")
|
||||
|
@ -61,11 +65,24 @@ class Helics(CMakePackage):
|
|||
default=True,
|
||||
description="Enable the integrated webserver in the HELICS broker server",
|
||||
)
|
||||
variant("python", default=False, description="Enable Python interface")
|
||||
variant(
|
||||
"encryption",
|
||||
default=True,
|
||||
when="@3.2.0:",
|
||||
description="Enable support for encrypted communication",
|
||||
)
|
||||
variant(
|
||||
"python",
|
||||
default=False,
|
||||
when="@:2",
|
||||
description="Enable building Python interface (split into separate repo in v3)",
|
||||
)
|
||||
|
||||
# Build dependency
|
||||
depends_on("git", type="build", when="@master:")
|
||||
depends_on("cmake@3.4:", type="build")
|
||||
depends_on("cmake@3.4:", type="build", when="@:2")
|
||||
depends_on("cmake@3.10:", type="build", when="@3.0.0:3.2.1")
|
||||
depends_on("cmake@3.11:", type="build", when="@3.3.0:")
|
||||
depends_on("boost@1.70:", type="build", when="+boost")
|
||||
|
||||
# TODO: replace this with an explicit list of components of Boost,
|
||||
|
@ -76,7 +93,17 @@ class Helics(CMakePackage):
|
|||
|
||||
depends_on("libzmq@4.3:", when="+zmq")
|
||||
depends_on("mpi@2", when="+mpi")
|
||||
depends_on("python@3:", when="+python")
|
||||
depends_on("openssl@1.1.1:", when="+encryption")
|
||||
|
||||
# SWIG generated Python interface only works with HELICS <=2.x
|
||||
depends_on("python@3:", when="@:2 +python")
|
||||
|
||||
# Compiler restrictions based on C++ standard supported
|
||||
conflicts("%gcc@:6", when="@3.0.0:", msg="HELICS 3+ cannot be built with GCC older than 7.0")
|
||||
conflicts(
|
||||
"%clang@:4", when="@3.0.0:", msg="HELICS 3+ cannot be built with Clang older than 5.0"
|
||||
)
|
||||
conflicts("%intel@:18", when="@3.0.0:", msg="HELICS 3+ cannot be built with ICC older than 19")
|
||||
|
||||
# OpenMPI doesn't work with HELICS <=2.4.1
|
||||
conflicts("^openmpi", when="@:2.4.1 +mpi")
|
||||
|
@ -100,12 +127,14 @@ def cmake_args(self):
|
|||
]
|
||||
|
||||
# HELICS core type CMake options
|
||||
args.append(from_variant("ENABLE_ZMQ_CORE", "zmq"))
|
||||
args.append(from_variant("ENABLE_TCP_CORE", "tcp"))
|
||||
args.append(from_variant("ENABLE_UDP_CORE", "udp"))
|
||||
args.append(from_variant("ENABLE_IPC_CORE", "ipc"))
|
||||
args.append(from_variant("ENABLE_INPROC_CORE", "inproc"))
|
||||
args.append(from_variant("ENABLE_MPI_CORE", "mpi"))
|
||||
# Options were renamed in v3
|
||||
pre = "HELICS_" if spec.satisfies("@3:") else ""
|
||||
args.append(from_variant("{0}ENABLE_ZMQ_CORE".format(pre), "zmq"))
|
||||
args.append(from_variant("{0}ENABLE_TCP_CORE".format(pre), "tcp"))
|
||||
args.append(from_variant("{0}ENABLE_UDP_CORE".format(pre), "udp"))
|
||||
args.append(from_variant("{0}ENABLE_IPC_CORE".format(pre), "ipc"))
|
||||
args.append(from_variant("{0}ENABLE_INPROC_CORE".format(pre), "inproc"))
|
||||
args.append(from_variant("{0}ENABLE_MPI_CORE".format(pre), "mpi"))
|
||||
|
||||
# HELICS shared library options
|
||||
args.append(
|
||||
|
@ -115,6 +144,7 @@ def cmake_args(self):
|
|||
|
||||
# HELICS executable app options
|
||||
args.append(from_variant("HELICS_BUILD_APP_EXECUTABLES", "apps"))
|
||||
args.append(from_variant("HELICS_BUILD_APP_LIBRARY", "apps_lib"))
|
||||
args.append(
|
||||
"-DHELICS_DISABLE_WEBSERVER={0}".format("OFF" if "+webserver" in spec else "ON")
|
||||
)
|
||||
|
@ -124,11 +154,16 @@ def cmake_args(self):
|
|||
args.append("-DHELICS_DISABLE_BOOST={0}".format("OFF" if "+boost" in spec else "ON"))
|
||||
args.append("-DHELICS_DISABLE_ASIO={0}".format("OFF" if "+asio" in spec else "ON"))
|
||||
|
||||
# Encryption
|
||||
args.append(from_variant("HELICS_ENABLE_ENCRYPTION", "encryption"))
|
||||
|
||||
# SWIG
|
||||
args.append(from_variant("HELICS_ENABLE_SWIG", "swig"))
|
||||
|
||||
# Python
|
||||
args.append(from_variant("BUILD_PYTHON_INTERFACE", "python"))
|
||||
if spec.satisfies("@:2"):
|
||||
# Python interface was removed from the main HELICS build in v3
|
||||
args.append(from_variant("BUILD_PYTHON_INTERFACE", "python"))
|
||||
|
||||
return args
|
||||
|
||||
|
|
Loading…
Reference in a new issue