trilinos: replace pytrilinos2 variant with python (#41435)
* depend_on python There is an ill-named variant "python" that enables the pytrilinos1 variant. This made it through our testing but broke on our actual CI test machines. * adjust "python" variant based on Trilinos version For Trilinos <= 14, enable PyTrilinos(1). For later versions of Trilinos, enable PyTrilinos2. We still support directly enabling PyTrilinos2 via the "pytrilinos2" variant. * remove pytrilinos2 variant * correct depends_on constraints
This commit is contained in:
parent
bb03ce7281
commit
a04ee77f77
@ -96,7 +96,8 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
description="global ordinal type for Tpetra",
|
description="global ordinal type for Tpetra",
|
||||||
)
|
)
|
||||||
variant("openmp", default=False, description="Enable OpenMP")
|
variant("openmp", default=False, description="Enable OpenMP")
|
||||||
variant("python", default=False, description="Build PyTrilinos wrappers")
|
variant("python", default=False, when="@15:", description="Build PyTrilinos2 wrappers")
|
||||||
|
variant("python", default=False, when="@:14", description="Build PyTrilinos wrappers")
|
||||||
variant("shared", default=True, description="Enables the build of shared libraries")
|
variant("shared", default=True, description="Enables the build of shared libraries")
|
||||||
variant("uvm", default=False, when="@13.2: +cuda", description="Turn on UVM for CUDA build")
|
variant("uvm", default=False, when="@13.2: +cuda", description="Turn on UVM for CUDA build")
|
||||||
variant("wrapper", default=False, description="Use nvcc-wrapper for CUDA build")
|
variant("wrapper", default=False, description="Use nvcc-wrapper for CUDA build")
|
||||||
@ -138,8 +139,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
variant("nox", default=False, description="Compile with NOX")
|
variant("nox", default=False, description="Compile with NOX")
|
||||||
variant("panzer", default=False, description="Compile with Panzer")
|
variant("panzer", default=False, description="Compile with Panzer")
|
||||||
variant("piro", default=False, description="Compile with Piro")
|
variant("piro", default=False, description="Compile with Piro")
|
||||||
variant("pytrilinos2", default=False, when="@develop", description="Compile with PyTrilinos2")
|
|
||||||
extends("python", when="+pytrilinos2")
|
|
||||||
variant("phalanx", default=False, description="Compile with Phalanx")
|
variant("phalanx", default=False, description="Compile with Phalanx")
|
||||||
variant("rol", default=False, description="Compile with ROL")
|
variant("rol", default=False, description="Compile with ROL")
|
||||||
variant("rythmos", default=False, description="Compile with Rythmos")
|
variant("rythmos", default=False, description="Compile with Rythmos")
|
||||||
@ -292,9 +291,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
conflicts("~ifpack")
|
conflicts("~ifpack")
|
||||||
conflicts("~aztec")
|
conflicts("~aztec")
|
||||||
|
|
||||||
# Don't disable python when building pytrilinos2
|
|
||||||
conflicts("~python", when="+pytrilinos2")
|
|
||||||
|
|
||||||
# Known requirements from tribits dependencies
|
# Known requirements from tribits dependencies
|
||||||
conflicts("~thyra", when="+stratimikos")
|
conflicts("~thyra", when="+stratimikos")
|
||||||
conflicts("+adelus", when="~kokkos")
|
conflicts("+adelus", when="~kokkos")
|
||||||
@ -407,7 +403,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on(kokkos_spec, when="@14.4.0 +kokkos {0}".format(arch_str))
|
depends_on(kokkos_spec, when="@14.4.0 +kokkos {0}".format(arch_str))
|
||||||
|
|
||||||
depends_on("adios2", when="+adios2")
|
depends_on("adios2", when="+adios2")
|
||||||
depends_on("binder@1.3:", when="+pytrilinos2", type="build")
|
depends_on("binder@1.3:", when="@15: +python", type="build")
|
||||||
depends_on("blas")
|
depends_on("blas")
|
||||||
depends_on("boost+graph+math+exception+stacktrace", when="+boost")
|
depends_on("boost+graph+math+exception+stacktrace", when="+boost")
|
||||||
# Need to revisit the requirement of STK
|
# Need to revisit the requirement of STK
|
||||||
@ -427,16 +423,14 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("matio", when="+exodus")
|
depends_on("matio", when="+exodus")
|
||||||
depends_on("metis", when="+zoltan")
|
depends_on("metis", when="+zoltan")
|
||||||
depends_on("mpi", when="+mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
depends_on("mpi", when="+pytrilinos2")
|
depends_on("mpi", when="@15: +python")
|
||||||
depends_on("netcdf-c", when="+exodus")
|
depends_on("netcdf-c", when="+exodus")
|
||||||
depends_on("parallel-netcdf", when="+exodus+mpi")
|
depends_on("parallel-netcdf", when="+exodus+mpi")
|
||||||
depends_on("parmetis", when="+mpi +zoltan")
|
depends_on("parmetis", when="+mpi +zoltan")
|
||||||
depends_on("parmetis", when="+scorec")
|
depends_on("parmetis", when="+scorec")
|
||||||
depends_on("py-mpi4py", when="+mpi+python", type=("build", "run"))
|
depends_on("py-mpi4py", when="+python", type=("build", "run"))
|
||||||
depends_on("py-mpi4py", when="+pytrilinos2", type=("build", "run"))
|
|
||||||
depends_on("py-numpy", when="+python", type=("build", "run"))
|
depends_on("py-numpy", when="+python", type=("build", "run"))
|
||||||
depends_on("py-numpy", when="+pytrilinos2", type=("build", "run"))
|
depends_on("py-pybind11", when="@15: +python", type=("build", "link"))
|
||||||
depends_on("py-pybind11", when="+pytrilinos2", type=("build", "link"))
|
|
||||||
depends_on("python", when="+python")
|
depends_on("python", when="+python")
|
||||||
depends_on("python", when="@13.2: +ifpack +hypre", type="build")
|
depends_on("python", when="@13.2: +ifpack +hypre", type="build")
|
||||||
depends_on("python", when="@13.2: +ifpack2 +hypre", type="build")
|
depends_on("python", when="@13.2: +ifpack2 +hypre", type="build")
|
||||||
@ -446,7 +440,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("suite-sparse", when="+suite-sparse")
|
depends_on("suite-sparse", when="+suite-sparse")
|
||||||
depends_on("superlu-dist", when="+superlu-dist")
|
depends_on("superlu-dist", when="+superlu-dist")
|
||||||
depends_on("superlu@4.3 +pic", when="+superlu")
|
depends_on("superlu@4.3 +pic", when="+superlu")
|
||||||
depends_on("swig", when="+python")
|
depends_on("swig", when="@:14 +python")
|
||||||
depends_on("zlib-api", when="+zoltan")
|
depends_on("zlib-api", when="+zoltan")
|
||||||
|
|
||||||
# Trilinos' Tribits config system is limited which makes it very tricky to
|
# Trilinos' Tribits config system is limited which makes it very tricky to
|
||||||
@ -631,6 +625,11 @@ def define_enable(suffix, value=None):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if spec.version >= Version("15"):
|
||||||
|
options.append(define_trilinos_enable("PyTrilinos2", "python"))
|
||||||
|
else:
|
||||||
|
options.append(define_trilinos_enable("PyTrilinos", "python"))
|
||||||
|
|
||||||
if "+test" in spec:
|
if "+test" in spec:
|
||||||
options.append(define_trilinos_enable("TESTS", True))
|
options.append(define_trilinos_enable("TESTS", True))
|
||||||
options.append(define("BUILD_TESTING", True))
|
options.append(define("BUILD_TESTING", True))
|
||||||
@ -681,8 +680,6 @@ def define_enable(suffix, value=None):
|
|||||||
define_trilinos_enable("Pike", False),
|
define_trilinos_enable("Pike", False),
|
||||||
define_trilinos_enable("Piro"),
|
define_trilinos_enable("Piro"),
|
||||||
define_trilinos_enable("Phalanx"),
|
define_trilinos_enable("Phalanx"),
|
||||||
define_trilinos_enable("PyTrilinos", "python"),
|
|
||||||
define_trilinos_enable("PyTrilinos2"),
|
|
||||||
define_trilinos_enable("ROL"),
|
define_trilinos_enable("ROL"),
|
||||||
define_trilinos_enable("Rythmos"),
|
define_trilinos_enable("Rythmos"),
|
||||||
define_trilinos_enable("Sacado"),
|
define_trilinos_enable("Sacado"),
|
||||||
@ -755,7 +752,7 @@ def define_enable(suffix, value=None):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
if "+pytrilinos2" in spec:
|
if "@15: +python" in spec:
|
||||||
binder = spec["binder"].prefix.bin.binder
|
binder = spec["binder"].prefix.bin.binder
|
||||||
clang_include_dirs = spec["binder"].clang_include_dirs
|
clang_include_dirs = spec["binder"].clang_include_dirs
|
||||||
libclang_include_dir = spec["binder"].libclang_include_dir
|
libclang_include_dir = spec["binder"].libclang_include_dir
|
||||||
|
Loading…
Reference in New Issue
Block a user