parallelio: update package to use mpi-serial, add extra module info (#33153)
This commit is contained in:
parent
2f057d729d
commit
790bd175e0
@ -29,14 +29,17 @@ class Parallelio(CMakePackage):
|
|||||||
variant(
|
variant(
|
||||||
"fortran", default=True, description="enable fortran interface (requires netcdf fortran)"
|
"fortran", default=True, description="enable fortran interface (requires netcdf fortran)"
|
||||||
)
|
)
|
||||||
|
variant("mpi", default=True, description="Use mpi to build, otherwise use mpi-serial")
|
||||||
|
|
||||||
depends_on("mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
depends_on("netcdf-c +mpi", type="link")
|
depends_on("mpi-serial", when="~mpi")
|
||||||
|
depends_on("netcdf-c +mpi", type="link", when="+mpi")
|
||||||
|
depends_on("netcdf-c ~mpi", type="link", when="~mpi")
|
||||||
depends_on("netcdf-fortran", type="link", when="+fortran")
|
depends_on("netcdf-fortran", type="link", when="+fortran")
|
||||||
depends_on("parallel-netcdf", type="link", when="+pnetcdf")
|
depends_on("parallel-netcdf", type="link", when="+pnetcdf")
|
||||||
|
|
||||||
# Allow argument mismatch in gfortran versions > 10 for mpi library compatibility
|
# Allow argument mismatch in gfortran versions > 10 for mpi library compatibility
|
||||||
patch("gfortran.patch", when="+fortran %gcc@10:")
|
patch("gfortran.patch", when="@:2.5.8 +fortran %gcc@10:")
|
||||||
|
|
||||||
resource(name="genf90", git="https://github.com/PARALLELIO/genf90.git", tag="genf90_200608")
|
resource(name="genf90", git="https://github.com/PARALLELIO/genf90.git", tag="genf90_200608")
|
||||||
|
|
||||||
@ -44,9 +47,8 @@ def cmake_args(self):
|
|||||||
define = self.define
|
define = self.define
|
||||||
define_from_variant = self.define_from_variant
|
define_from_variant = self.define_from_variant
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
env["CC"] = spec["mpi"].mpicc
|
|
||||||
env["FC"] = spec["mpi"].mpifc
|
|
||||||
src = self.stage.source_path
|
src = self.stage.source_path
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
define("NetCDF_C_PATH", spec["netcdf-c"].prefix),
|
define("NetCDF_C_PATH", spec["netcdf-c"].prefix),
|
||||||
define("USER_CMAKE_MODULE_PATH", join_path(src, "cmake")),
|
define("USER_CMAKE_MODULE_PATH", join_path(src, "cmake")),
|
||||||
@ -66,7 +68,18 @@ def cmake_args(self):
|
|||||||
define("NetCDF_Fortran_PATH", spec["netcdf-fortran"].prefix),
|
define("NetCDF_Fortran_PATH", spec["netcdf-fortran"].prefix),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
if spec.satisfies("+mpi"):
|
||||||
|
env["CC"] = spec["mpi"].mpicc
|
||||||
|
env["FC"] = spec["mpi"].mpifc
|
||||||
|
else:
|
||||||
|
env["FFLAGS"] = "-DNO_MPIMOD"
|
||||||
|
args.extend(
|
||||||
|
[
|
||||||
|
define("PIO_USE_MPISERIAL", True),
|
||||||
|
define("PIO_ENABLE_TESTS", False),
|
||||||
|
define("MPISERIAL_PATH", spec["mpi-serial"].prefix),
|
||||||
|
]
|
||||||
|
)
|
||||||
args.extend(
|
args.extend(
|
||||||
[
|
[
|
||||||
define_from_variant("PIO_ENABLE_TIMING", "timing"),
|
define_from_variant("PIO_ENABLE_TIMING", "timing"),
|
||||||
@ -80,3 +93,12 @@ def url_for_version(self, version):
|
|||||||
return "https://github.com/NCAR/ParallelIO/archive/pio{0}.tar.gz".format(
|
return "https://github.com/NCAR/ParallelIO/archive/pio{0}.tar.gz".format(
|
||||||
version.underscored
|
version.underscored
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def setup_run_environment(self, env):
|
||||||
|
env.set("PIO_VERSION_MAJOR", "2")
|
||||||
|
valid_values = "netcdf"
|
||||||
|
if self.spec.satisfies("+mpi"):
|
||||||
|
valid_values += ",netcdf4p,netcdf4c"
|
||||||
|
if self.spec.satisfies("+pnetcdf"):
|
||||||
|
valid_values += ",pnetcdf"
|
||||||
|
env.set("PIO_TYPENAME_VALID_VALUES", valid_values)
|
||||||
|
Loading…
Reference in New Issue
Block a user