summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorJoseph Ciurej <ciurej1@llnl.gov>2016-02-16 16:43:24 -0800
committerJoseph Ciurej <ciurej1@llnl.gov>2016-02-16 16:43:24 -0800
commit8cab10214e63344b77ffc34df3609dbc9f1690a5 (patch)
treef466800c780cb47bea3e6ef4ffc0b7d54ca69fef /var
parent09254014b182ccf4cbc4ce291141b7ab39b9171d (diff)
downloadspack-8cab10214e63344b77ffc34df3609dbc9f1690a5.tar.gz
spack-8cab10214e63344b77ffc34df3609dbc9f1690a5.tar.bz2
spack-8cab10214e63344b77ffc34df3609dbc9f1690a5.tar.xz
spack-8cab10214e63344b77ffc34df3609dbc9f1690a5.zip
Added the installation files for the "ExodusII" package.
Added the "+static" variant to "hdf5" to enable "ExodusII" support.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch12
-rw-r--r--var/spack/repos/builtin/packages/exodusii/package.py49
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py4
3 files changed, 65 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch b/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch
new file mode 100644
index 0000000000..25355269ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch
@@ -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
diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py
new file mode 100644
index 0000000000..89c04bf79c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exodusii/package.py
@@ -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')
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 80f79539c0..7db4aff631 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -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 @@ class Hdf5(Package):
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")