Make PETSc an optional dependency of fenics-dolfinx (#49837)

* Make petsc optional

* Add C dependency

* Add to cmake args

* Make petsc optional

* Add C dependency

* Add to cmake args

* Update var/spack/repos/builtin/packages/fenics-dolfinx/package.py

Co-authored-by: Alec Scott <hi@alecbcs.com>

* Fix duplicate line

---------

Co-authored-by: Alec Scott <hi@alecbcs.com>
This commit is contained in:
Chris Richardson 2025-04-22 18:08:27 +01:00 committed by GitHub
parent 6085586407
commit 9010e6f556
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -30,6 +30,7 @@ class FenicsDolfinx(CMakePackage):
multi=True,
)
# HDF5 dependency requires C in CMake
depends_on("c", type="build")
depends_on("cxx", type="build") # generated
@ -40,7 +41,9 @@ class FenicsDolfinx(CMakePackage):
variant("slepc", default=False, description="slepc support")
variant("adios2", default=False, description="adios2 support")
variant("petsc", default=False, description="PETSc support")
depends_on("petsc", when="+slepc")
depends_on("cmake@3.21:", when="@0.9:", type="build")
depends_on("cmake@3.19:", when="@:0.8", type="build")
depends_on("pkgconfig", type="build")
@ -50,7 +53,7 @@ class FenicsDolfinx(CMakePackage):
depends_on("pugixml")
depends_on("spdlog", when="@0.9:")
depends_on("petsc+mpi+shared")
depends_on("petsc+mpi+shared", when="+petsc")
depends_on("slepc", when="+slepc")
depends_on("adios2@2.8.1:+mpi", when="@0.9: +adios2")
@ -76,6 +79,7 @@ class FenicsDolfinx(CMakePackage):
def cmake_args(self):
return [
self.define("DOLFINX_SKIP_BUILD_TESTS", True),
self.define_from_variant("DOLFINX_ENABLE_PETSC", "petsc"),
self.define_from_variant("DOLFINX_ENABLE_SLEPC", "slepc"),
self.define_from_variant("DOLFINX_ENABLE_ADIOS2", "adios2"),
self.define("DOLFINX_UFCX_PYTHON", False),