SEACAS: Update package.py to handle new SEACAS project name (#33646)

The base project name for the SEACAS project has changed from
"SEACASProj" to "SEACAS" as of @2022-10-14, so the package
needed to be updated to use the new project name when needed.

The refactor also changes several:
    "-DSome_CMAKE_Option:BOOL=ON"
to
   define("Some_CMAKE_Option", True)
This commit is contained in:
Greg Sjaardema 2022-11-02 10:50:15 -06:00 committed by GitHub
parent cff94f8e71
commit d4ea74bf80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,10 +15,13 @@
class Seacas(CMakePackage):
"""The SEACAS Project contains the Exodus and IOSS libraries and a
collection of applications which create, query, modify, or
translate exodus databases. Default is to build the exodus and
IOSS libraries and the io_shell, io_info, io_modify, struc_to_unstruc apps.
"""The SEACAS Project contains the Exodus and IOSS I/O libraries
and a collection of applications which create, query, modify, or
translate Exodus databases. Exodus is a finite element mesh and
results database file format.
Default is to build the Exodus and IOSS libraries and the
io_shell, io_info, io_modify, struc_to_unstruc apps.
"""
homepage = "https://sandialabs.github.io/seacas/"
@ -131,7 +134,8 @@ class Seacas(CMakePackage):
depends_on("hdf5+hl~mpi", when="~mpi")
depends_on("cgns@4.2.0:+mpi+scoping", when="+cgns +mpi")
depends_on("cgns@4.2.0:~mpi+scoping", when="+cgns ~mpi")
depends_on("fmt@8.1.0:", when="@2022-03-04:")
depends_on("fmt@8.1.0:", when="@2022-03-04:2022-05-16")
depends_on("fmt@9.1.0:", when="@2022-10-14")
with when("+adios2"):
depends_on("adios2@master")
@ -166,35 +170,49 @@ def cmake_args(self):
from_variant = self.define_from_variant
define = self.define
if self.spec.satisfies("@2022-10-14:"):
project_name_base = "Seacas"
else:
project_name_base = "SEACASProj"
options = []
# #################### Base Settings #######################
options.extend(
[
from_variant("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "shared"),
from_variant("BUILD_SHARED_LIBS", "shared"),
from_variant("SEACASExodus_ENABLE_THREADSAFE", "thread_safe"),
from_variant("SEACASIoss_ENABLE_THREADSAFE", "thread_safe"),
from_variant("TPL_ENABLE_X11", "x11"),
]
)
if "+mpi" in spec:
options.extend(
[
"-DCMAKE_C_COMPILER=%s" % spec["mpi"].mpicc,
"-DCMAKE_CXX_COMPILER=%s" % spec["mpi"].mpicxx,
"-DCMAKE_Fortran_COMPILER=%s" % spec["mpi"].mpifc,
"-DTPL_ENABLE_MPI:BOOL=ON",
define("TPL_ENABLE_MPI", True),
"-DMPI_BASE_DIR:PATH=%s" % spec["mpi"].prefix,
]
)
else:
"-DTPL_ENABLE_MPI:BOOL=OFF"
options.extend(
[
define("TPL_ENABLE_MPI", False),
]
)
options.extend(
[
"-DSEACASProj_ENABLE_TESTS:BOOL=ON",
"-DSEACASProj_ENABLE_CXX11:BOOL=ON",
from_variant("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "shared"),
from_variant("BUILD_SHARED_LIBS", "shared"),
"-DSEACASProj_ENABLE_Kokkos:BOOL=OFF",
"-DSEACASProj_HIDE_DEPRECATED_CODE:BOOL=OFF",
from_variant("SEACASExodus_ENABLE_THREADSAFE", "thread_safe"),
from_variant("SEACASIoss_ENABLE_THREADSAFE", "thread_safe"),
from_variant("SEACASProj_ENABLE_Fortran", "fortran"),
from_variant("TPL_ENABLE_X11", "x11"),
define(project_name_base + "_ENABLE_TESTS", True),
define(project_name_base + "_ENABLE_CXX11", True),
define(project_name_base + "_ENABLE_Kokkos", False),
define(project_name_base + "_HIDE_DEPRECATED_CODE", False),
from_variant(project_name_base + "_ENABLE_Fortran", "fortran"),
]
)
@ -203,67 +221,68 @@ def cmake_args(self):
if "+applications" in spec and "+legacy" in spec:
options.extend(
[
"-DSEACASProj_ENABLE_ALL_PACKAGES:BOOL=ON",
"-DSEACASProj_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON",
"-DSEACASProj_ENABLE_SECONDARY_TESTED_CODE:BOOL=ON",
define(project_name_base + "_ENABLE_ALL_PACKAGES", True),
define(project_name_base + "_ENABLE_ALL_OPTIONAL_PACKAGES", True),
define(project_name_base + "_ENABLE_SECONDARY_TESTED_CODE", True),
]
)
else:
# Don't want everything; handle the subsets:
options.extend(
[
"-DSEACASProj_ENABLE_ALL_PACKAGES:BOOL=OFF",
"-DSEACASProj_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF",
"-DSEACASProj_ENABLE_SECONDARY_TESTED_CODE:BOOL=OFF",
"-DSEACASProj_ENABLE_SEACASIoss:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASExodus:BOOL=ON",
from_variant("SEACASProj_ENABLE_SEACASExodus_for", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASExoIIv2for32", "fortran"),
define(project_name_base + "_ENABLE_ALL_PACKAGES", False),
define(project_name_base + "_ENABLE_ALL_OPTIONAL_PACKAGES", False),
define(project_name_base + "_ENABLE_SECONDARY_TESTED_CODE", False),
define(project_name_base + "_ENABLE_SEACASIoss", True),
define(project_name_base + "_ENABLE_SEACASExodus", True),
from_variant(project_name_base + "_ENABLE_SEACASExodus_for", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASExoIIv2for32", "fortran"),
]
)
if "+applications" in spec:
options.extend(
[
"-DSEACASProj_ENABLE_SEACASAprepro:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASAprepro_lib:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASConjoin:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASCpup:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASEjoin:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASEpu:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASExo2mat:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASExo_format:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASExodiff:BOOL=ON",
from_variant("SEACASProj_ENABLE_SEACASExplore", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASGrepos", "fortran"),
"-DSEACASProj_ENABLE_SEACASMat2exo:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASNas2exo:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASNemslice:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASNemspread:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASSlice:BOOL=ON",
"-DSEACASProj_ENABLE_SEACASZellij:BOOL=ON",
define(project_name_base + "_ENABLE_SEACASAprepro", True),
define(project_name_base + "_ENABLE_SEACASAprepro_lib", True),
define(project_name_base + "_ENABLE_SEACASConjoin", True),
define(project_name_base + "_ENABLE_SEACASCpup", True),
define(project_name_base + "_ENABLE_SEACASEjoin", True),
define(project_name_base + "_ENABLE_SEACASEpu", True),
define(project_name_base + "_ENABLE_SEACASExo2mat", True),
define(project_name_base + "_ENABLE_SEACASExo_format", True),
define(project_name_base + "_ENABLE_SEACASExodiff", True),
from_variant(project_name_base + "_ENABLE_SEACASExplore", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASGrepos", "fortran"),
define(project_name_base + "_ENABLE_SEACASMat2exo", True),
define(project_name_base + "_ENABLE_SEACASNas2exo", True),
define(project_name_base + "_ENABLE_SEACASNemslice", True),
define(project_name_base + "_ENABLE_SEACASNemspread", True),
define(project_name_base + "_ENABLE_SEACASSlice", True),
define(project_name_base + "_ENABLE_SEACASZellij", True),
]
)
if "+legacy" in spec:
options.extend(
[
define("SEACASProj_ENABLE_SEACASNemesis", True),
from_variant("SEACASProj_ENABLE_SEACASAlgebra", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASBlot", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASEx1ex2v2", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASEx2ex1v2", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASExomatlab", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASExotec2", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASExotxt", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASFastq", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASGen3D", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASGenshell", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASGjoin", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASMapvar", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASMapvar-kd", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASNumbers", "fortran"),
from_variant("SEACASProj_ENABLE_SEACASTxtexo", "fortran"),
define(project_name_base + "_ENABLE_SEACASNemesis", True),
from_variant(project_name_base + "_ENABLE_SEACASAlgebra", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASBlot", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASEx1ex2v2", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASEx2ex1v2", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASExomatlab", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASExotec2", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASExotxt", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASFastq", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASGen3D", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASGenshell", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASGjoin", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASMapvar", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASMapvar-kd", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASNumbers", "fortran"),
from_variant(project_name_base + "_ENABLE_SEACASTxtexo", "fortran"),
]
)
@ -271,7 +290,7 @@ def cmake_args(self):
# Always need NetCDF-C
options.extend(
[
"-DTPL_ENABLE_Netcdf:BOOL=ON",
define("TPL_ENABLE_Netcdf", True),
"-DNetCDF_ROOT:PATH=%s" % spec["netcdf-c"].prefix,
]
)
@ -279,11 +298,11 @@ def cmake_args(self):
if "+parmetis" in spec:
options.extend(
[
"-DTPL_ENABLE_METIS:BOOL=ON",
define("TPL_ENABLE_METIS", True),
"-DMETIS_LIBRARY_DIRS=%s" % spec["metis"].prefix.lib,
"-DMETIS_LIBRARY_NAMES=metis",
"-DTPL_METIS_INCLUDE_DIRS=%s" % spec["metis"].prefix.include,
"-DTPL_ENABLE_ParMETIS:BOOL=ON",
define("TPL_ENABLE_ParMETIS", True),
"-DParMETIS_LIBRARY_DIRS=%s;%s"
% (spec["parmetis"].prefix.lib, spec["metis"].prefix.lib),
"-DParMETIS_LIBRARY_NAMES=parmetis;metis",
@ -294,37 +313,48 @@ def cmake_args(self):
elif "+metis" in spec:
options.extend(
[
"-DTPL_ENABLE_METIS:BOOL=ON",
define("TPL_ENABLE_METIS", True),
"-DMETIS_LIBRARY_DIRS=%s" % spec["metis"].prefix.lib,
"-DMETIS_LIBRARY_NAMES=metis",
"-DTPL_METIS_INCLUDE_DIRS=%s" % spec["metis"].prefix.include,
"-DTPL_ENABLE_ParMETIS:BOOL=OFF",
define("TPL_ENABLE_ParMETIS", False),
]
)
else:
options.extend(
[
"-DTPL_ENABLE_METIS:BOOL=OFF",
"-DTPL_ENABLE_ParMETIS:BOOL=OFF",
define("TPL_ENABLE_METIS", False),
define("TPL_ENABLE_ParMETIS", False),
]
)
if "+matio" in spec:
options.extend(
["-DTPL_ENABLE_Matio:BOOL=ON", "-DMatio_ROOT:PATH=%s" % spec["matio"].prefix]
[
define("TPL_ENABLE_Matio", True),
"-DMatio_ROOT:PATH=%s" % spec["matio"].prefix,
]
)
else:
options.extend(["-DTPL_ENABLE_Matio:BOOL=OFF"])
options.extend(
[
define("TPL_ENABLE_Matio", False),
]
)
if "+cgns" in spec:
options.extend(
[
"-DTPL_ENABLE_CGNS:BOOL=ON",
define("TPL_ENABLE_CGNS", True),
"-DCGNS_ROOT:PATH=%s" % spec["cgns"].prefix,
]
)
else:
options.extend(["-DTPL_ENABLE_CGNS:BOOL=OFF"])
options.extend(
[
define("TPL_ENABLE_CGNS", False),
]
)
options.append(from_variant("TPL_ENABLE_Faodel", "faodel"))
@ -335,12 +365,16 @@ def cmake_args(self):
if "+adios2" in spec:
options.extend(
[
"-DTPL_ENABLE_ADIOS2:BOOL=ON",
define("TPL_ENABLE_ADIOS2", True),
"-DADIOS2_ROOT:PATH=%s" % spec["adios2"].prefix,
]
)
else:
options.extend(["-DTPL_ENABLE_ADIOS2:BOOL=OFF"])
options.extend(
[
define("TPL_ENABLE_ADIOS2", False),
]
)
# ################# RPath Handling ######################
if sys.platform == "darwin" and macos_version() >= Version("10.12"):