Added the installation files for the "ExodusII" package.

Added the "+static" variant to "hdf5" to enable "ExodusII" support.
This commit is contained in:
Joseph Ciurej 2016-02-16 16:43:24 -08:00
parent 09254014b1
commit 8cab10214e
3 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,12 @@
diff --git a/cmake-exodus b/cmake-exodus
index 787fd9d..ed073a2 100755
--- a/cmake-exodus
+++ b/cmake-exodus
@@ -1,4 +1,6 @@
-EXTRA_ARGS=$@
+#!/bin/bash
+
+EXTRA_ARGS=-DSEACASProj_ENABLE_CXX11=OFF
### Change this to point to the compilers you want to use
CC=gcc

View File

@ -0,0 +1,49 @@
from spack import *
# TODO: Add support for a C++11 enabled installation that filters out the
# TODO: "C++11-Disabled" flag (but only if the spec compiler supports C++11).
# TODO: Add support for parallel installation that uses MPI.
# TODO: Create installation options for NetCDF that support larger page size
# TODO: suggested by Exodus (see the repository "README" file).
class Exodusii(Package):
"""Exodus II is a C++/Fortran library developed to store and retrieve data for
finite element analyses. It's used for preprocessing (problem definition),
postprocessing (results visualization), and data transfer between codes.
An Exodus II data file is a random access, machine independent, binary
file that is written and read via C, C++, or Fortran API routines."""
homepage = "https://github.com/gsjaardema/seacas"
url = "https://github.com/gsjaardema/seacas/archive/master.zip"
version('2016-02-08', git='https://github.com/gsjaardema/seacas.git', commit='dcf3529')
# TODO: Make this a build dependency once build dependencies are supported
# (see: https://github.com/LLNL/spack/pull/378).
depends_on('cmake@2.8.7:')
depends_on('hdf5+static~mpi')
depends_on('netcdf~mpi')
patch('exodus-cmake.patch')
def patch(self):
ff = FileFilter('cmake-exodus')
ff.filter('CMAKE_INSTALL_PREFIX:PATH=${ACCESS}',
'CMAKE_INSTALL_PREFIX:PATH=%s' % self.spec.prefix, string=True)
ff.filter('NetCDF_DIR:PATH=${TPL}',
'NetCDF_DIR:PATH=%s' % self.spec['netcdf'].prefix, string=True)
ff.filter('HDF5_ROOT:PATH=${TPL}',
'HDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix, string=True)
def install(self, spec, prefix):
mkdirp('build')
cd('build')
cmake_exodus = Executable('../cmake-exodus')
cmake_exodus()
make()
make('install')

View File

@ -42,6 +42,7 @@ class Hdf5(Package):
version('1.8.13', 'c03426e9e77d7766944654280b467289')
variant('debug', default=False, description='Builds a debug version of the library')
variant('static', default=False, description='Builds a static executable version of the library')
variant('cxx', default=True, description='Enable C++ support')
variant('fortran', default=True, description='Enable Fortran support')
@ -78,6 +79,9 @@ def install(self, spec, prefix):
else:
extra_args.append('--enable-production')
if '+static' in spec:
extra_args.append('--enable-static-exec')
if '+unsupported' in spec:
extra_args.append("--enable-unsupported")