seacas: new release and fixes for metis/parmetis (#26310)

* seacas: new release and fixes for metis/parmetis

* Update to add sha256 checksum for latest seacas release

* Updated the documentation strings with new applications

* Fixed the metis/parmetis variants and logic depending on whether mpi
  is enabled/disabled. (There is still a zoltan issue I need to fix,
  but this will at least allow seacas to be built without
  metis/parmetis or with +mpi+parmetis.  The ~mpi+metis still needs
  work elsewhere.)

* Enable cpup, slice, zellij in +applications
This commit is contained in:
Greg Sjaardema 2021-09-29 08:53:49 -06:00 committed by GitHub
parent 9d39a1bf42
commit 5132cfcc63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,7 +18,7 @@ class Seacas(CMakePackage):
"""The SEACAS Project contains the Exodus and IOSS libraries and a """The SEACAS Project contains the Exodus and IOSS libraries and a
collection of applications which create, query, modify, or collection of applications which create, query, modify, or
translate exodus databases. Default is to build the exodus and translate exodus databases. Default is to build the exodus and
IOSS libraries and the io_shell, io_info, struc_to_unstruc apps. IOSS libraries and the io_shell, io_info, io_modify, struc_to_unstruc apps.
""" """
homepage = "https://gsjaardema.github.io/seacas/" homepage = "https://gsjaardema.github.io/seacas/"
git = "https://github.com/gsjaardema/seacas.git" git = "https://github.com/gsjaardema/seacas.git"
@ -27,6 +27,7 @@ class Seacas(CMakePackage):
# ###################### Versions ########################## # ###################### Versions ##########################
version('master', branch='master') version('master', branch='master')
version('2021-09-30', sha256='5d061e35e93eb81214da3b67ddda2829cf5efed38a566be6363a9866ba2f9ab3')
version('2021-05-12', sha256='92663767f0317018d6f6e422e8c687e49f6f7eb2b92e49e837eb7dc0ca0ac33d') version('2021-05-12', sha256='92663767f0317018d6f6e422e8c687e49f6f7eb2b92e49e837eb7dc0ca0ac33d')
version('2021-04-05', sha256='76f66eec1fec7aba30092c94c7609495e6b90d9dcb6f35b3ee188304d02c6e04') version('2021-04-05', sha256='76f66eec1fec7aba30092c94c7609495e6b90d9dcb6f35b3ee188304d02c6e04')
version('2021-01-20', sha256='7814e81981d03009b6816be3eb4ed3845fd02cc69e006ee008a2cbc85d508246') version('2021-01-20', sha256='7814e81981d03009b6816be3eb4ed3845fd02cc69e006ee008a2cbc85d508246')
@ -47,9 +48,9 @@ class Seacas(CMakePackage):
variant('applications', default=True, variant('applications', default=True,
description='Build all "current" SEACAS applications. This' description='Build all "current" SEACAS applications. This'
' includes a debatable list of essential applications: ' ' includes a debatable list of essential applications: '
'aprepro, conjoin, ejoin, epu, exo2mat, mat2exo, ' 'aprepro, conjoin, cpup, ejoin, epu, exo2mat, mat2exo, '
'exo_format, exodiff, explore, grepos, ' 'exo_format, exodiff, explore, grepos, io_shell, io_info, '
'nemslice, nemspread') 'io_modify, nemslice, nemspread, zellij')
variant('legacy', default=True, variant('legacy', default=True,
description='Build all "legacy" SEACAS applications. This includes' description='Build all "legacy" SEACAS applications. This includes'
' a debatable list of "legacy" applications: algebra, blot, ' ' a debatable list of "legacy" applications: algebra, blot, '
@ -90,8 +91,9 @@ class Seacas(CMakePackage):
depends_on('adios2@develop~mpi', when='+adios2 ~mpi') depends_on('adios2@develop~mpi', when='+adios2 ~mpi')
depends_on('adios2@develop+mpi', when='+adios2 +mpi') depends_on('adios2@develop+mpi', when='+adios2 +mpi')
depends_on('matio', when='+matio') depends_on('matio', when='+matio')
depends_on('metis+int64+real64', when='+metis ~mpi') with when('+metis'):
depends_on('parmetis+int64+real64', when='+metis +mpi') depends_on('metis+int64+real64')
depends_on('parmetis+int64', when='+mpi')
# MPI related dependencies # MPI related dependencies
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
@ -156,6 +158,7 @@ def cmake_args(self):
'-DSEACASProj_ENABLE_SEACASAprepro:BOOL=ON', '-DSEACASProj_ENABLE_SEACASAprepro:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASAprepro_lib:BOOL=ON', '-DSEACASProj_ENABLE_SEACASAprepro_lib:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASConjoin:BOOL=ON', '-DSEACASProj_ENABLE_SEACASConjoin:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASCpup:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASEjoin:BOOL=ON', '-DSEACASProj_ENABLE_SEACASEjoin:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASEpu:BOOL=ON', '-DSEACASProj_ENABLE_SEACASEpu:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASExo2mat:BOOL=ON', '-DSEACASProj_ENABLE_SEACASExo2mat:BOOL=ON',
@ -168,6 +171,7 @@ def cmake_args(self):
'-DSEACASProj_ENABLE_SEACASNemslice:BOOL=ON', '-DSEACASProj_ENABLE_SEACASNemslice:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASNemspread:BOOL=ON', '-DSEACASProj_ENABLE_SEACASNemspread:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASSlice:BOOL=ON', '-DSEACASProj_ENABLE_SEACASSlice:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASZellij:BOOL=ON',
]) ])
if '+legacy' in spec: if '+legacy' in spec:
@ -198,7 +202,7 @@ def cmake_args(self):
'-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix,
]) ])
if '+metis' in spec: if '+parmetis' in spec:
options.extend([ options.extend([
'-DTPL_ENABLE_METIS:BOOL=ON', '-DTPL_ENABLE_METIS:BOOL=ON',
'-DMETIS_LIBRARY_DIRS=%s' % spec['metis'].prefix.lib, '-DMETIS_LIBRARY_DIRS=%s' % spec['metis'].prefix.lib,
@ -212,6 +216,14 @@ def cmake_args(self):
spec['parmetis'].prefix.include, spec['parmetis'].prefix.include,
spec['metis'].prefix.include) spec['metis'].prefix.include)
]) ])
elif '+metis' in spec:
options.extend([
'-DTPL_ENABLE_METIS:BOOL=ON',
'-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',
])
else: else:
options.extend([ options.extend([
'-DTPL_ENABLE_METIS:BOOL=OFF', '-DTPL_ENABLE_METIS:BOOL=OFF',