summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorBarry Smith <bsmith@mcs.anl.gov>2017-04-25 18:09:30 -0500
committerTodd Gamblin <tgamblin@llnl.gov>2017-04-25 16:09:30 -0700
commitd04ae9a2b4c19e45c99f3af3c6d6a2599486ee05 (patch)
treef86cb0dcf11f4323ed06879ce0b6d2f4c1bf1006 /var
parent4a7a4f5cd346df6691cb2a673a908024b4c57776 (diff)
downloadspack-d04ae9a2b4c19e45c99f3af3c6d6a2599486ee05.tar.gz
spack-d04ae9a2b4c19e45c99f3af3c6d6a2599486ee05.tar.bz2
spack-d04ae9a2b4c19e45c99f3af3c6d6a2599486ee05.tar.xz
spack-d04ae9a2b4c19e45c99f3af3c6d6a2599486ee05.zip
xsdk version 0.2.0 (#3928)
* xSDK: a bundle/meta package that simple installs a series of packages with suitable specs This is based on struggles with previous attempts at such a bundler Funded-by: IDEAS Project: IDEAS/xSDK Time: 12 hours * PETSc needs c++11 when built with Trilinos * Added alquimia package * remove direct setting of cpp in petsc/package.py since it doesn't work on some systems. Funded-by: IDEAS Project: IDEAS/xSDK Time: .3 hours Reported-by: Mark A. Berrill <berrillma@ornl.gov> * provide the MPI compilers to PETSc configure with --with-cc etc instead of --with-mpi-dir Funded-by: IDEAS Project: IDEAS/xSDK * Spack bug fix issue #3144 String could contain /n which resulting in spack generating warning message to stderr on each use of compiler which configure interpreted as failing compiler Thanks-to: Mark A. Berrill <berrillma@ornl.gov> * Fixed alquimia package Alquimia expects PETSC_DIR and PETSC_ARCH to be defined, and refuses to install if they are not. Spack does not define PETSC_ ARCH, so Alquimia will not install. This patch does two things to fix the alquimia build: 1. A patch has been added to remove the dependency on PETSC_ARCH. 2. Alquimia currently depends on old versions of PETSc and pflotran. @ghammond86 updated the alquimia interfaces to use more recent versions, but his patch is still sitting in an alquimia pull request. As a result, the spack installer now uses his fork of alquimia. This is a temporary fix until his pull request is accepted. * Need to pass to Alquimia the MPI compilers, not the raw compilers Otherwise the PETSc tests do not produce executables that can run because they are not linked against MPI libraries Funded-by: IDEAS Project: IDEAS/xSDK Time: .5 hours * Add alquimia to xSDK build Funded-by: IDEAS Project: IDEAS/xSDK * Fix flake8 errors for xsdk packages * Add xsdk support for xsdk version xsdk-0.2.0 Note that currently it is just dummy code, but will eventually use a xsdk-0.2.0 tag for each package it installs. Funded-by: IDEAS Project: IDEAS/xSDK Time: .7 hours * Do not build Mumps by default for PETSc since it is not portable, for example to Cray Allow alquimia to accept PETSc even if the PETSc test executable cannot run since this is a problem on Cray. Reported-by: Alicia Marie Klinvex <amklinv@sandia.gov> * Add xsdk-0.2.0-rc1 tag for xsdk-0.2.0 installs * Switch alquimia download site back to standard location since they have incorporated Glenn Hammond's fixes Also it no longer needs the patch to the Alquimia cmake Funded-by: IDEAS Project: IDEAS/xSDK Reported-by: Sergi Molins Rafa <smolins@lbl.gov> * update hypre to use the latest release candidate for xsdk 0.2.0 Funded-by: IDEAS Project: IDEAS/xSDK Reported-by: Ulrike Meier Yang <yang11@llnl.gov> * Re-added patch to alquimia The patch was out of date and has been updated accordingly. * Added Tpetra-free option to Trilinos The Tpetra stack takes forever to build and is not used by any of the IDEAS teams, so there should be an option to disable it. I have added this option and updated the xSDK accordingly. I also disabled xSDKTrilinos in the xSDK, since none of the apps teams currently use it, and it's largely Tpetra-based. * Removed alquimia patch from develop version The patch has been incorporated into alquimia and is no longer necessary for the develop version. The tagged version has not been updated accordingly and still needs the patch for now. (When the tagged version gets updated, the patch does need to be removed from spack altogether, or it will break the build.) * Removed patch from alquimia It has been incorporated into alquimia, both the develop and rc2 tagged versions. The 0.2.0 version of alquimia has been updated to tag rc2 rather than rc1. * update xsdk-0.2.0 to depend on PETSc xsdk-0.2.0-rc2 which fixes for Apple xcode 8.3 Commit-type: bug-fix Funded-by: IDEAS Project: IDEAS/xSDK * import sys got lost in merge with develop * Update xsdk packages to use xsdk-0.2.0 tag Commit-type: feature Funded-by: IDEAS Project: ECP * Fixes for Flake8 note, had to ignore some long lines due to a single string * simple improvements to XDK packages as suggested by Spack pull request reviewers Commit-type: style-fix Funded-by: IDEAS Project: xSDK * Removed unneeded : after develop as requested by Denis Davydov in pull request review Commit-type: style-fix Funded-by: IDEAS Project: xSDK Thanks-to: Denis Davydov * Removed change that may not be needed due to updates in PETSc spack file such as using mpicc etc directly Commit-type: bug-fix Funded-by: IDEAS Project: xSDK Thanks-to: Adam J. Stewart * Do not turn on xSDKTrilinos for xSDK builds since it requires tpetra Commit-type: bug-fix Funded-by: IDEAS Project: xSDK * comment why MUMPS is disabled by default for PETSc so that others won't try to enable it when modifying petsc package next time Commit-type: documentation Funded-by: IDEAS Project: xSDK Thanks-to: Denis Davydov
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/alquimia/package.py74
-rw-r--r--var/spack/repos/builtin/packages/hypre/package.py1
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py39
-rw-r--r--var/spack/repos/builtin/packages/pflotran/package.py9
-rw-r--r--var/spack/repos/builtin/packages/superlu-dist/package.py1
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py18
-rw-r--r--var/spack/repos/builtin/packages/xsdk/package.py84
-rw-r--r--var/spack/repos/builtin/packages/xsdktrilinos/package.py9
8 files changed, 210 insertions, 25 deletions
diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py
new file mode 100644
index 0000000000..9e35aa9e15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alquimia/package.py
@@ -0,0 +1,74 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Alquimia(CMakePackage):
+ """Alquimia is an interface that exposes the capabilities
+ of mature geochemistry codes such as CrunchFlow and PFLOTRAN"""
+
+ homepage = "https://github.com/LBL-EESA/alquimia-dev"
+
+ version('xsdk-0.2.0', git='https://github.com/LBL-EESA/alquimia-dev.git', tag='xsdk-0.2.0')
+ version('develop', git='https://github.com/LBL-EESA/alquimia-dev.git')
+
+ variant('shared', default=True,
+ description='Enables the build of shared libraries')
+ variant('debug', default=False,
+ description='Builds a debug version of the libraries')
+
+ depends_on('mpi')
+ depends_on('hdf5')
+ depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('pflotran@develop', when='@develop')
+ depends_on('petsc@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('petsc@develop', when='@develop')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ options = ['-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
+ '-DUSE_XSDK_DEFAULTS=YES',
+ '-DCMAKE_BUILD_TYPE:STRING=%s' % (
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ '-DXSDK_ENABLE_DEBUG:STRING=%s' % (
+ 'YES' if '+debug' in spec else 'NO'),
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % (
+ 'ON' if '+shared' in spec else 'OFF'),
+ '-DTPL_ENABLE_MPI:BOOL=ON',
+ '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
+ '-DTPL_ENABLE_HDF5:BOOL=ON',
+ '-DXSDK_WITH_PFLOTRAN:BOOL=ON',
+ # This is not good.
+ # It assumes that the .a file exists and is not a .so
+ '-DTPL_PFLOTRAN_LIBRARIES=%s' % (
+ spec['pflotran'].prefix.lib + "/libpflotranchem.a"),
+ '-DTPL_PFLOTRAN_INCLUDE_DIRS=%s' % (
+ spec['pflotran'].prefix.include),
+ '-DTPL_ENABLE_PETSC:BOOL=ON',
+ '-DPETSC_EXECUTABLE_RUNS=ON',
+ '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix]
+ return options
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py
index 55886d86fa..67a636de44 100644
--- a/var/spack/repos/builtin/packages/hypre/package.py
+++ b/var/spack/repos/builtin/packages/hypre/package.py
@@ -36,6 +36,7 @@ class Hypre(Package):
url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz"
version('develop', git='https://github.com/LLNL/hypre', tag='master')
+ version('xsdk-0.2.0', git='https://github.com/LLNL/hypre', tag='xsdk-0.2.0')
version('2.11.2', 'd507943a1a3ce5681c3308e2f3a6dd34')
version('2.11.1', '3f02ef8fd679239a6723f60b7f796519')
version('2.10.1', 'dc048c4cabb3cd549af72591474ad674')
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index d3c1895508..4e2effd9ad 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -23,8 +23,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
import sys
+import os
from spack import *
@@ -38,8 +38,7 @@ class Petsc(Package):
url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.5.3.tar.gz"
version('develop', git='https://bitbucket.org/petsc/petsc.git', tag='master')
- version('for-pflotran-0.1.0', git='https://bitbucket.org/petsc/petsc.git',
- commit='7943f4e1472fff9cf1fc630a1100136616e4970f')
+ version('xsdk-0.2.0', git='https://bitbucket.org/petsc/petsc.git', tag='xsdk-0.2.0')
version('3.7.5', 'f00f6e6a3bac39052350dd47194b58a3')
version('3.7.4', 'aaf94fa54ef83022c14091f10866eedf')
@@ -66,11 +65,15 @@ class Petsc(Package):
variant('boost', default=True, description='Activates support for Boost')
variant('hypre', default=True,
description='Activates support for Hypre (only parallel)')
- variant('mumps', default=True,
+ # Mumps is disabled by default, because it depends on Scalapack
+ # which is not portable to all HPC systems
+ variant('mumps', default=False,
description='Activates support for MUMPS (only parallel'
' and 32bit indices)')
variant('superlu-dist', default=True,
description='Activates support for SuperluDist (only parallel)')
+ variant('trilinos', default=False,
+ description='Activates support for Trilinos (only parallel)')
variant('int64', default=False,
description='Compile with 64bit indices')
@@ -106,15 +109,24 @@ class Petsc(Package):
# conflict in headers see
# https://bitbucket.org/petsc/petsc/src/90564b43f6b05485163c147b464b5d6d28cde3ef/config/BuildSystem/config/packages/hypre.py
depends_on('hypre~internal-superlu~int64', when='+hypre+mpi~complex~int64')
+ depends_on('hypre@xsdk-0.2.0~internal-superlu+int64', when='@xsdk-0.2.0+hypre+mpi~complex+int64')
+ depends_on('hypre@xsdk-0.2.0~internal-superlu~int64', when='@xsdk-0.2.0+hypre+mpi~complex~int64')
+ depends_on('hypre@develop~internal-superlu+int64', when='@develop+hypre+mpi~complex+int64')
+ depends_on('hypre@develop~internal-superlu~int64', when='@develop+hypre+mpi~complex~int64')
depends_on('hypre~internal-superlu+int64', when='+hypre+mpi~complex+int64')
depends_on('superlu-dist@:4.3~int64', when='@3.4.4:3.6.4+superlu-dist+mpi~int64')
depends_on('superlu-dist@:4.3+int64', when='@3.4.4:3.6.4+superlu-dist+mpi+int64')
depends_on('superlu-dist@5.0.0:~int64', when='@3.7:+superlu-dist+mpi~int64')
depends_on('superlu-dist@5.0.0:+int64', when='@3.7:+superlu-dist+mpi+int64')
- depends_on('superlu-dist@5.0.0:~int64', when='@for-pflotran-0.1.0+superlu-dist+mpi~int64')
- depends_on('superlu-dist@5.0.0:+int64', when='@for-pflotran-0.1.0+superlu-dist+mpi+int64')
+ depends_on('superlu-dist@xsdk-0.2.0~int64', when='@xsdk-0.2.0+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@xsdk-0.2.0+int64', when='@xsdk-0.2.0+superlu-dist+mpi+int64')
+ depends_on('superlu-dist@develop~int64', when='@develop+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@develop+int64', when='@develop+superlu-dist+mpi+int64')
depends_on('mumps+mpi', when='+mumps+mpi~int64')
depends_on('scalapack', when='+mumps+mpi~int64')
+ depends_on('trilinos@12.6.2:', when='@3.7.0:+trilinos+mpi')
+ depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0+trilinos+mpi')
+ depends_on('trilinos@develop', when='@xdevelop+trilinos+mpi')
def mpi_dependent_options(self):
if '~mpi' in self.spec:
@@ -140,14 +152,10 @@ class Petsc(Package):
raise RuntimeError('\n'.join(errors))
else:
compiler_opts = [
- '--with-mpi=1',
- '--with-mpi-dir=%s' % self.spec['mpi'].prefix,
+ '--with-cc=%s' % self.spec['mpi'].mpicc,
+ '--with-cxx=%s' % self.spec['mpi'].mpicxx,
+ '--with-fc=%s' % self.spec['mpi'].mpifc
]
- if sys.platform != "darwin":
- compiler_opts.extend([
- '--with-cpp=cpp',
- '--with-cxxcpp=cpp',
- ])
return compiler_opts
def install(self, spec, prefix):
@@ -173,6 +181,9 @@ class Petsc(Package):
'--with-blas-lapack-lib=%s' % lapack_blas.joined()
])
+ if 'trilinos' in spec:
+ options.append('--with-cxx-dialect=C++11')
+
# Help PETSc pick up Scalapack from MKL:
if 'scalapack' in spec:
scalapack = spec['scalapack'].libs
@@ -187,7 +198,7 @@ class Petsc(Package):
# Activates library support if needed
for library in ('metis', 'boost', 'hdf5', 'hypre', 'parmetis',
- 'mumps'):
+ 'mumps', 'scalapack', 'trilinos'):
options.append(
'--with-{library}={value}'.format(
library=library, value=('1' if library in spec else '0'))
diff --git a/var/spack/repos/builtin/packages/pflotran/package.py b/var/spack/repos/builtin/packages/pflotran/package.py
index fc70693041..b7e623cb05 100644
--- a/var/spack/repos/builtin/packages/pflotran/package.py
+++ b/var/spack/repos/builtin/packages/pflotran/package.py
@@ -33,13 +33,12 @@ class Pflotran(AutotoolsPackage):
homepage = "http://www.pflotran.org"
- version('develop', hg='https://bitbucket.org/pflotran/pflotran-xsdk')
- version('0.1.0', hg='https://bitbucket.org/pflotran/pflotran-xsdk',
- commmit='4734cf5e606b')
+ version('develop', git='https://bitbucket.org/pflotran/pflotran')
+ version('xsdk-0.2.0', git='https://bitbucket.org/pflotran/pflotran', tag='master')
depends_on('mpi')
depends_on('hdf5@1.8.12:+mpi+fortran')
- depends_on('petsc@develop+hdf5+metis',when='@develop')
- depends_on('petsc@for-pflotran-0.1.0+hdf5+metis',when='@0.1.0')
+ depends_on('petsc@develop+hdf5+metis', when='@develop')
+ depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0')
parallel = False
diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py
index 9c31694295..e19a33a900 100644
--- a/var/spack/repos/builtin/packages/superlu-dist/package.py
+++ b/var/spack/repos/builtin/packages/superlu-dist/package.py
@@ -34,6 +34,7 @@ class SuperluDist(Package):
url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz"
version('develop', git='https://github.com/xiaoyeli/superlu_dist', tag='master')
+ version('xsdk-0.2.0', git='https://github.com/xiaoyeli/superlu_dist', tag='xsdk-0.2.0')
version('5.1.3', 'fec21a9207ef94f57501c9406da78285')
version('5.1.1', '12638c631733a27dcbd87110e9f9cb1e')
version('5.1.0', '6bb86e630bd4bd8650243aed8fd92eb9')
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 9422034893..0d90ae4e1e 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -46,6 +46,8 @@ class Trilinos(CMakePackage):
homepage = "https://trilinos.org/"
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-10-1.tar.gz"
+ version('xsdk-0.2.0',
+ git='https://github.com/trilinos/Trilinos.git', tag='xsdk-0.2.0')
version('develop',
git='https://github.com/trilinos/Trilinos.git', tag='develop')
version('master',
@@ -86,6 +88,7 @@ class Trilinos(CMakePackage):
variant('debug', default=False,
description='Builds a debug version of the libraries')
variant('boost', default=True, description='Compile with Boost')
+ variant('tpetra', default=True, description='Compile with Tpetra')
variant('exodus', default=False, description='Compile with Exodus from SEACAS')
# Everything should be compiled with -fpic
@@ -112,15 +115,19 @@ class Trilinos(CMakePackage):
depends_on('scalapack', when='+mumps')
depends_on('superlu-dist@:4.3', when='@:12.6.1+superlu-dist')
depends_on('superlu-dist', when='@12.6.2:+superlu-dist')
+ depends_on('superlu-dist@develop', when='@develop+superlu-dist')
+ depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0+superlu-dist')
depends_on('superlu+fpic@4.3', when='+superlu')
# Trilinos can not be built against 64bit int hypre
depends_on('hypre~internal-superlu~int64', when='+hypre')
+ depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
+ depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
depends_on('hdf5+mpi', when='+hdf5')
depends_on('python', when='+python')
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('swig', when='+python')
- patch('umfpack_from_suitesparse.patch', when='@:12.8.1')
+ patch('umfpack_from_suitesparse.patch', when='@11.14.1:12.8.1')
def url_for_version(self, version):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
@@ -128,7 +135,8 @@ class Trilinos(CMakePackage):
# check that the combination of variants makes sense
def variants_check(self):
- if '+superlu-dist' in self.spec and self.spec.satisfies('@:11.4.3'):
+ if ('+superlu-dist' in self.spec and
+ self.spec.satisfies('@11.14.1:11.14.3')):
# For Trilinos v11 we need to force SuperLUDist=OFF, since only the
# deprecated SuperLUDist v3.3 together with an Amesos patch is
# working.
@@ -174,7 +182,9 @@ class Trilinos(CMakePackage):
'-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
'-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON',
'-DTrilinos_ENABLE_CXX11:BOOL=ON',
- '-DTPL_ENABLE_Netcdf:BOOL=ON'
+ '-DTPL_ENABLE_Netcdf:BOOL=ON',
+ '-DTrilinos_ENABLE_Tpetra:BOOL=%s' % (
+ 'ON' if '+tpetra' in spec else 'OFF')
])
if '.'.join(platform.mac_ver()[0].split('.')[:2]) == '10.12':
@@ -385,7 +395,7 @@ class Trilinos(CMakePackage):
options.extend([
'-DTrilinos_ENABLE_SEACAS:BOOL=OFF'
])
-
+
# disable due to compiler / config errors:
if spec.satisfies('%xl') or spec.satisfies('%xl_r'):
options.extend([
diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py
new file mode 100644
index 0000000000..3ceadcda7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsdk/package.py
@@ -0,0 +1,84 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import os
+from spack import *
+
+
+class Xsdk(Package):
+ """Xsdk is a suite of Department of Energy (DOE) packages for numerical
+ simulation. This is a Spack bundle package that installs the xSDK
+ packages
+ """
+
+ homepage = "http://xsdk.info"
+
+ # Dummy url since Spack complains if I don't list something, will be
+ # removed when metapackage is available
+ url = 'https://bitbucket.org/saws/saws/get/master.tar.gz'
+
+ version('develop', '941a541bdf625856be18c9752249146d')
+ version('xsdk-0.2.0', '941a541bdf625856be18c9752249146d')
+
+ depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0')
+ depends_on('hypre@develop~internal-superlu', when='@develop')
+
+ depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('superlu-dist@develop', when='@develop')
+
+ depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra',
+ when='@xsdk-0.2.0')
+ depends_on('trilinos@develop+xsdkflags+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra',
+ when='@develop')
+
+ depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost',
+ when='@xsdk-0.2.0')
+ depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost',
+ when='@develop')
+
+ depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('pflotran@develop', when='@develop')
+
+ depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('alquimia@develop', when='@develop')
+
+ # xSDKTrilinos depends on the version of Trilinos built with
+ # +tpetra which is turned off for faster xSDK
+ # depends_on('xsdktrilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
+ # depends_on('xsdktrilinos@develop', when='@develop')
+
+ variant('debug', default=False, description='Compile in debug mode')
+
+ # How do we propagate debug flag to all depends on packages ?
+ # If I just do spack install xsdk+debug will that propogate it down?
+
+ # Dummy install for now, will be removed when metapackage is available
+ def install(self, spec, prefix):
+ # Prevent the error message
+ # ==> Error: Install failed for xsdk. Nothing was installed!
+ # ==> Error: Installation process had nonzero exit code : 256
+ with open(os.path.join(spec.prefix, 'bundle-package.txt'), 'w') as out:
+ out.write('This is a bundle\n')
+ out.close()
diff --git a/var/spack/repos/builtin/packages/xsdktrilinos/package.py b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
index 7e88b2f9eb..7af6cd73a7 100644
--- a/var/spack/repos/builtin/packages/xsdktrilinos/package.py
+++ b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
@@ -35,6 +35,7 @@ class Xsdktrilinos(CMakePackage):
url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-12-8-1.tar.gz"
version('develop', git='https://github.com/trilinos/xSDKTrilinos.git', tag='master')
+ version('xsdk-0.2.0', git='https://github.com/trilinos/xSDKTrilinos.git', tag='xsdk-0.2.0')
version('12.8.1', '9cc338ded17d1e10ea6c0dc18b22dcd4')
version('12.6.4', '44c4c54ccbac73bb8939f68797b9454a')
@@ -50,10 +51,14 @@ class Xsdktrilinos(CMakePackage):
# MPI related dependencies
depends_on('mpi')
depends_on('hypre~internal-superlu', when='+hypre')
- depends_on('petsc+mpi~complex', when='+petsc')
+ depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
+ depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
+ depends_on('petsc@xsdk-0.2.0+mpi~complex', when='@xsdk-0.2.0+petsc')
+ depends_on('petsc@develop+mpi~complex', when='@develop+petsc')
depends_on('trilinos@12.6.4', when='@12.6.4')
depends_on('trilinos@12.8.1', when='@12.8.1')
- depends_on('trilinos@develop', when='@develop')
+ depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('trilinos@develop', when='@develop')
def url_for_version(self, version):
url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-{0}.tar.gz"