visit: Add NetCDF format support (#40065)
This commit is contained in:
parent
4e37084ed4
commit
46062d98fd
@ -78,6 +78,7 @@ class Visit(CMakePackage):
|
|||||||
variant("osmesa", default=False, description="Use OSMesa for off-screen CPU rendering")
|
variant("osmesa", default=False, description="Use OSMesa for off-screen CPU rendering")
|
||||||
variant("adios2", default=True, description="Enable ADIOS2 file format")
|
variant("adios2", default=True, description="Enable ADIOS2 file format")
|
||||||
variant("hdf5", default=True, description="Enable HDF5 file format")
|
variant("hdf5", default=True, description="Enable HDF5 file format")
|
||||||
|
variant("netcdf", default=True, description="Enable NetCDF file format")
|
||||||
variant("silo", default=True, description="Enable Silo file format")
|
variant("silo", default=True, description="Enable Silo file format")
|
||||||
variant("python", default=True, description="Enable Python support")
|
variant("python", default=True, description="Enable Python support")
|
||||||
variant("mpi", default=True, description="Enable parallel engine")
|
variant("mpi", default=True, description="Enable parallel engine")
|
||||||
@ -142,6 +143,11 @@ class Visit(CMakePackage):
|
|||||||
depends_on("hdf5+mpi", when="+hdf5+mpi")
|
depends_on("hdf5+mpi", when="+hdf5+mpi")
|
||||||
depends_on("hdf5~mpi", when="+hdf5~mpi")
|
depends_on("hdf5~mpi", when="+hdf5~mpi")
|
||||||
|
|
||||||
|
# Enable netCDF library based on MPI variant and OLD C++ interface
|
||||||
|
depends_on("netcdf-c+mpi", when="+netcdf+mpi")
|
||||||
|
depends_on("netcdf-c~mpi", when="+netcdf~mpi")
|
||||||
|
depends_on("netcdf-cxx", when="+netcdf")
|
||||||
|
|
||||||
# VisIt uses Silo's 'ghost zone' data structures, which are only available
|
# VisIt uses Silo's 'ghost zone' data structures, which are only available
|
||||||
# in v4.10+ releases: https://wci.llnl.gov/simulation/computer-codes/silo/releases/release-notes-4.10
|
# in v4.10+ releases: https://wci.llnl.gov/simulation/computer-codes/silo/releases/release-notes-4.10
|
||||||
depends_on("silo@4.10: +shared", when="+silo")
|
depends_on("silo@4.10: +shared", when="+silo")
|
||||||
@ -189,6 +195,11 @@ def patch(self):
|
|||||||
for filename in find("src", "CMakeLists.txt"):
|
for filename in find("src", "CMakeLists.txt"):
|
||||||
filter_file(r"\bvtk(tiff|jpeg|png)", r"${vtk\1_LIBRARIES}", filename)
|
filter_file(r"\bvtk(tiff|jpeg|png)", r"${vtk\1_LIBRARIES}", filename)
|
||||||
|
|
||||||
|
# NetCDF components are in separate directories using Spack, which is
|
||||||
|
# not what Visit's CMake logic expects
|
||||||
|
if "+netcdf" in self.spec:
|
||||||
|
filter_file(r"(set\(NETCDF_CXX_DIR)", r"#\1", "src/CMake/FindNetcdf.cmake")
|
||||||
|
|
||||||
def flag_handler(self, name, flags):
|
def flag_handler(self, name, flags):
|
||||||
if name in ("cflags", "cxxflags"):
|
if name in ("cflags", "cxxflags"):
|
||||||
# NOTE: This is necessary in order to allow VisIt to compile a couple
|
# NOTE: This is necessary in order to allow VisIt to compile a couple
|
||||||
@ -292,6 +303,14 @@ def cmake_args(self):
|
|||||||
if "+mpi" in spec and "+mpi" in spec["hdf5"]:
|
if "+mpi" in spec and "+mpi" in spec["hdf5"]:
|
||||||
args.append(self.define("VISIT_HDF5_MPI_DIR", spec["hdf5"].prefix))
|
args.append(self.define("VISIT_HDF5_MPI_DIR", spec["hdf5"].prefix))
|
||||||
|
|
||||||
|
if "+netcdf" in spec:
|
||||||
|
args.extend(
|
||||||
|
[
|
||||||
|
self.define("NETCDF_DIR", spec["netcdf-c"].prefix),
|
||||||
|
self.define("NETCDF_CXX_DIR", spec["netcdf-cxx"].prefix),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
if "+silo" in spec:
|
if "+silo" in spec:
|
||||||
args.append(self.define("VISIT_SILO_DIR", spec["silo"].prefix))
|
args.append(self.define("VISIT_SILO_DIR", spec["silo"].prefix))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user