Xsdk 0.3.0 (#6277)

* xsdk:  Added MFEM rc package.

* xsdk: add version entry for xsdk-0.3.0-rc1 - and set it as preferred version

* xsdk: remove 'xsdk' from version - recommended by Todd.

Now the usage is:
 'spack install xsdk@0.3.0-rc1'

instead of the previous usage:
 'spack install xsdk@xsdk-0.2.0'

* xsdk: add petsc@3.8.0 as a dependency for xsdk-0.3.0-rc1

* mfem: fix dependency to use the corrected xsdk version

* Updated the mfem version tags.

* mfem: fix merge

* fix flake8 warning

* Modified xSDK scripts

* fixing the default package.yaml

* fix bad revert

* revert changes to superlu-dist so that the 5.2.1 update can be merged

* update xsdk to use superlu-dist-5.2.1

* update alquimia for xsdk

* fix whitespace

* update hypre for xsdk

* update sundials for xsdk

* update sundials for xsdk

* Fix checking for MKL and extend range of GCC versions

* pflotran: update to release branch

* plasma: fix spec -> self.spec

* Changes to enable mfem hooks into hypre, superlu-dist, and petsc.  Sundials hooks may come in the future.

* adding plasma with comment

* Bumped the version of mfem up to handle integration with sundials3.0.0.  Also enabled hypre in sundials.

* Turn on the plasma package definition for testing

* Fix conflict declaration to obey ordering rules

* xsdk: udate superlu-dist dependency to v5.2.2

* plasma: change gcc dependency to workarround potential spack bug #5778

* trilinos: update hdf5 dependency to use 'hdf5+hl'

Without this change - I get the following error [triggered by 161dca6d5 c9810f808 changes]

$ ./bin/spack install trilinos+hdf5
==> Error: An unsatisfiable variant constraint has been detected for spec:

    hdf5@1.10.1%gcc@7~cxx~debug~fortran~hl+mpi+pic+shared~szip~threadsafe arch=linux-fedora27-x86_64

while trying to concretize the partial spec:

    netcdf+mpi
        ^m4
        ^mpich@3.3a2%gcc@7 device=ch3 +hydra netmod=tcp +pmi+romio~verbs arch=linux-fedora27-x86_64
        ^zlib@1.2.11%gcc@7+optimize+pic+shared arch=linux-fedora27-x86_64

netcdf requires hdf5 variant +hl, but spec asked for ~hl

* plasma: add in -lm dependency per #6046

* update sundials version to 3.0.0

* Add fixes to support Netlib LAPACK

* mfem does not use cmake for builds [anymore] - so remove code corresponding to this dependency.

This enables mfem build on OSX [with xcode/clang compilers]

* mfem: update to v3.3.2-rc4

* add patch for building sundials on mac

* xsdk: enable plasma for gcc-4.9+ - same as what plasma/package.py does.

* magma: Fix for cuda-9.0  as it does not support sm20

nvcc fatal   : Unsupported gpu architecture 'compute_20'

* add in code for 'spack install xsdk+cuda' - which installs magma

* fix flake8 warning

* fix flake8 warnings

* Updated to the latest MFEM RC.

* alquimia: fix to use petsc-3.8.0+ versions

* petsc: update to version 3.8.1

* petsc: add in conflict between petsc-3.8.0 & mkl

* xsdk: update petsc to 3.8.1 to get MKL build fix

* petsc: fix superlu_dist dependency

* petsc: when hdf5 depends on zlib - petsc+hdf5 should also be configured with zlib

* petsc: fix dependency [of zlib to be on hdf5 - and not on petsc]

* petsc: fix pkgconfig error - with incorrect library link order that can break mfem examples with static build

* petsc: use the fact that hdf5/package.py has a hard dependency on zlib [so no need to check for this dependency in code]

recommended-by: @davydden

* petsc: change hdf5 dependency to 'hdf5+hl' as petsc configure is looing for -lhdf5_hl

https://github.com/spack/spack/issues/5846

* plasma: also detect -lgfortran

* update sundials version to 3.1.0

* alquimia: xsdk-0.3.0-rc -> xsdk-0.3.0

* petsc: update to version 3.8.2

Includes pkgconfig fix [for mfem static build failure]

* Revert "petsc: fix pkgconfig error - with incorrect library link order that can break mfem examples with static build"

This reverts commit d1afa8c20d4313fdc42a27e5380573b035b32998.

* xsdk: update to use petsc-3.8.2

* Fixed a problem with MFEM trying to use mpicxx instead of the spack defined compiler.

* Minor changes to the mfem build and pointing at mfem's release branch that is currently undergoing internal testing.

* Enabling shared build for Plasma

* plasma: do not look for libgfortran on cray - spack finds the wrong one from the frontend

'-L/usr/lib64/gcc/x86_64-suse-linux/4.3 -L/usr/lib64 -lgfortran'

* Some changes to the mfem package that are in the process of being pulled into spack/develop.

* xsdk: switch from 0.3.0-rc1 to 0.3.0

* fix flake8 warnings

* plasma: extract plasma changes from xsdk-0.3.0

* plasma: cleanup per review
- netlib-lapack: add support for spec['lapack:c'].libs, spec['blas:c'].libs
- add getblaslapacklibs() to eliminate duplicate code in edit() and build_targets()
- eliminate string manipulation of ld_flags

- remove gfortran check (will check later)
- remove build() (will check later)

* netlib-lapack: fix tuple per review

* netlib-lapack: use  spec[lapack:c,fortran]
This commit is contained in:
Satish Balay 2017-11-28 00:08:08 -06:00 committed by Todd Gamblin
parent 52f46d2bee
commit cd8da5a441
3 changed files with 24 additions and 2 deletions

View file

@ -31,6 +31,7 @@ class Alquimia(CMakePackage):
homepage = "https://github.com/LBL-EESA/alquimia-dev" homepage = "https://github.com/LBL-EESA/alquimia-dev"
version('xsdk-0.3.0', git='https://github.com/LBL-EESA/alquimia-dev.git', tag='xsdk-0.3.0')
version('xsdk-0.2.0', git='https://github.com/LBL-EESA/alquimia-dev.git', tag='xsdk-0.2.0') 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') version('develop', git='https://github.com/LBL-EESA/alquimia-dev.git')
@ -39,8 +40,10 @@ class Alquimia(CMakePackage):
depends_on('mpi') depends_on('mpi')
depends_on('hdf5') depends_on('hdf5')
depends_on('pflotran@xsdk-0.3.0', when='@xsdk-0.3.0')
depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('pflotran@develop', when='@develop') depends_on('pflotran@develop', when='@develop')
depends_on('petsc@3.8.0:', when='@xsdk-0.3.0')
depends_on('petsc@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('petsc@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('petsc@develop', when='@develop') depends_on('petsc@develop', when='@develop')

View file

@ -35,10 +35,12 @@ class Pflotran(AutotoolsPackage):
version('develop', git='https://bitbucket.org/pflotran/pflotran') version('develop', git='https://bitbucket.org/pflotran/pflotran')
version('xsdk-0.2.0', git='https://bitbucket.org/pflotran/pflotran', tag='master') version('xsdk-0.2.0', git='https://bitbucket.org/pflotran/pflotran', tag='master')
version('xsdk-0.3.0', git='https://bitbucket.org/pflotran/pflotran', branch='release/xsdk-0.3.0')
depends_on('mpi') depends_on('mpi')
depends_on('hdf5@1.8.12:+mpi+fortran') depends_on('hdf5@1.8.12:+mpi+fortran')
depends_on('petsc@develop+hdf5+metis', when='@develop') depends_on('petsc@develop+hdf5+metis', when='@develop')
depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0') depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0')
depends_on('petsc@3.8.0:+hdf5+metis', when='@xsdk-0.3.0')
parallel = False parallel = False

View file

@ -40,37 +40,54 @@ class Xsdk(Package):
url = 'https://bitbucket.org/saws/saws/get/master.tar.gz' url = 'https://bitbucket.org/saws/saws/get/master.tar.gz'
version('develop', 'a52dc710c744afa0b71429b8ec9425bc') version('develop', 'a52dc710c744afa0b71429b8ec9425bc')
version('0.3.0', 'a52dc710c744afa0b71429b8ec9425bc', preferred=True)
version('xsdk-0.2.0', 'a52dc710c744afa0b71429b8ec9425bc') version('xsdk-0.2.0', 'a52dc710c744afa0b71429b8ec9425bc')
variant('debug', default=False, description='Compile in debug mode')
variant('cuda', default=False, description='Enable CUDA dependent packages')
depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0')
depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0') depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0')
depends_on('hypre@develop~internal-superlu', when='@develop') depends_on('hypre@develop~internal-superlu', when='@develop')
depends_on('mfem@3.3.2+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.3.0')
depends_on('mfem@3.3.2+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@develop')
depends_on('superlu-dist@5.2.2', when='@0.3.0')
depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('superlu-dist@develop', when='@develop') depends_on('superlu-dist@develop', when='@develop')
depends_on('trilinos@12.12.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@0.3.0')
depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus', depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@xsdk-0.2.0') when='@xsdk-0.2.0')
depends_on('trilinos@develop+xsdkflags+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus', depends_on('trilinos@develop+xsdkflags+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@develop') when='@develop')
depends_on('petsc@3.8.2+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64',
when='@0.3.0')
depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64', depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64',
when='@xsdk-0.2.0') when='@xsdk-0.2.0')
depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64', depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64',
when='@develop') when='@develop')
depends_on('pflotran@xsdk-0.3.0', when='@0.3.0')
depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('pflotran@develop', when='@develop') depends_on('pflotran@develop', when='@develop')
depends_on('alquimia@xsdk-0.3.0', when='@0.3.0')
depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0') depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('alquimia@develop', when='@develop') depends_on('alquimia@develop', when='@develop')
depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0')
depends_on('plasma', when='@0.3.0 %gcc@4.9:')
depends_on('magma', when='@0.3.0 +cuda')
# xSDKTrilinos depends on the version of Trilinos built with # xSDKTrilinos depends on the version of Trilinos built with
# +tpetra which is turned off for faster xSDK # +tpetra which is turned off for faster xSDK
# depends_on('xsdktrilinos@xsdk-0.2.0', when='@xsdk-0.2.0') # depends_on('xsdktrilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
# depends_on('xsdktrilinos@develop', when='@develop') # 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 ? # How do we propagate debug flag to all depends on packages ?
# If I just do spack install xsdk+debug will that propogate it down? # If I just do spack install xsdk+debug will that propogate it down?