summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorCorey McNeish <35310375+mcneish1@users.noreply.github.com>2018-06-07 16:08:23 -0700
committerAdam J. Stewart <ajstewart426@gmail.com>2018-06-07 18:08:23 -0500
commitc8a3a650fa736cb27fe2e63f493f7d23e742b16c (patch)
treeedbe6ec2062aebfca3588737b62c8c60b48e5431 /var
parent1a8bb78824686a6d15b32c5d6689ae864204d20b (diff)
downloadspack-c8a3a650fa736cb27fe2e63f493f7d23e742b16c.tar.gz
spack-c8a3a650fa736cb27fe2e63f493f7d23e742b16c.tar.bz2
spack-c8a3a650fa736cb27fe2e63f493f7d23e742b16c.tar.xz
spack-c8a3a650fa736cb27fe2e63f493f7d23e742b16c.zip
Fix hydrogen@develop build (#8262)
* Delete support for old versions of Elemental in Hydrogen * Fix cmake_args versions in lbann * Remove unused import (again) * Revert elemental to pre-llnl fork * Strip tailing whitespace from libgfortran.so * Fix flake8 * Remove debug print * * Add back elemental@develop * Prohibit installation of hydrogen previous to 0.99 * Fix flake8 * Change cmake_args error to a conflicts for old versions of Hydrogen * Use ~ not -
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/elemental/package.py66
-rw-r--r--var/spack/repos/builtin/packages/hydrogen/package.py14
-rw-r--r--var/spack/repos/builtin/packages/lbann/package.py2
3 files changed, 13 insertions, 69 deletions
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index 2b72a500ca..b82d57b147 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -23,7 +23,6 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-import sys
from spack import *
from spack.spec import UnsupportedCompilerError
@@ -33,9 +32,7 @@ class Elemental(CMakePackage):
and optimization library."""
homepage = "http://libelemental.org"
- url = "https://github.com/elemental/Elemental/archive/v0.87.6.tar.gz"
-
- version('hydrogen-develop', git='https://github.com/LLNL/Elemental.git', branch='hydrogen')
+ url = "https://github.com/elemental/Elemental/archive/v0.87.7.tar.gz"
version('develop', git='https://github.com/elemental/Elemental.git', branch='master')
version('0.87.7', '6c1e7442021c59a36049e37ea69b8075')
@@ -88,7 +85,7 @@ class Elemental(CMakePackage):
depends_on('veclibfort', when='blas=accelerate')
- depends_on('essl -cuda', when='blas=essl -openmp_blas ~int64_blas')
+ depends_on('essl ~cuda', when='blas=essl ~openmp_blas ~int64_blas')
depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas')
# Note that this forces us to use OpenBLAS until #1712 is fixed
@@ -116,7 +113,6 @@ class Elemental(CMakePackage):
'libEl', root=self.prefix, shared=shared, recursive=True
)
- @when('@0.87.6:')
def cmake_args(self):
spec = self.spec
@@ -146,20 +142,20 @@ class Elemental(CMakePackage):
ifort = env['SPACK_F77']
intel_bin = os.path.dirname(ifort)
intel_root = os.path.dirname(intel_bin)
- libfortran = LibraryList('{0}/lib/intel64/libifcoremt.{1}'
- .format(intel_root, dso_suffix))
+ libfortran = find_libraries('libifcoremt',
+ root=intel_root, recursive=True)
elif self.spec.satisfies('%gcc'):
# see <stage_folder>/debian/rules as an example:
mpif77 = Executable(spec['mpi'].mpif77)
libfortran = LibraryList(mpif77('--print-file-name',
'libgfortran.%s' % dso_suffix,
- output=str))
+ output=str).strip())
elif self.spec.satisfies('%xl') or self.spec.satisfies('%xl_r'):
xl_fort = env['SPACK_F77']
xl_bin = os.path.dirname(xl_fort)
xl_root = os.path.dirname(xl_bin)
- libfortran = LibraryList('{0}/lib/libxlf90_r.{1}.1'
- .format(xl_root, dso_suffix))
+ libfortran = find_libraries('libxlf90_r',
+ root=xl_root, recursive=True)
else:
libfortran = None
@@ -191,51 +187,3 @@ class Elemental(CMakePackage):
'-DPYTHON_SITE_PACKAGES:STRING={0}'.format(site_packages_dir)])
return args
-
- @when('@:0.87.6')
- def cmake_args(self):
- spec = self.spec
-
- if '@:0.87.7' in spec and '%intel@:17.0.2' in spec:
- raise UnsupportedCompilerError(
- "Elemental {0} has a known bug with compiler: {1} {2}".format(
- spec.version, spec.compiler.name, spec.compiler.version))
-
- args = [
- '-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
- '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
- '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
- '-DHydrogen_ENABLE_OPENMP:BOOL=%s' % ('+hybrid' in spec),
- '-DHydrogen_ENABLE_QUADMATH:BOOL=%s' % ('+quad' in spec),
- '-DHydrogen_USE_64BIT_INTS:BOOL=%s' % ('+int64' in spec),
- '-DHydrogen_USE_64BIT_BLAS_INTS:BOOL=%s' % ('+int64_blas' in spec),
- '-DHydrogen_ENABLE_MPC:BOOL=%s' % ('+mpfr' in spec),
- '-DHydrogen_GENERAL_LAPACK_FALLBACK=ON',
- ]
-
- # Add support for OS X to find OpenMP
- if (self.spec.satisfies('%clang')):
- if (sys.platform == 'darwin'):
- clang = self.compiler.cc
- clang_bin = os.path.dirname(clang)
- clang_root = os.path.dirname(clang_bin)
- args.extend([
- '-DOpenMP_DIR={0}'.format(clang_root)])
-
- if 'blas=openblas' in spec:
- args.extend([
- '-DHydrogen_USE_OpenBLAS:BOOL=%s' % ('blas=openblas' in spec),
- '-DOpenBLAS_DIR:STRING={0}'.format(
- spec['elemental'].prefix)])
- elif 'blas=mkl' in spec:
- args.extend([
- '-DHydrogen_USE_MKL:BOOL=%s' % ('blas=mkl' in spec)])
- elif 'blas=accelerate' in spec:
- args.extend(['-DHydrogen_USE_ACCELERATE:BOOL=TRUE'])
- elif 'blas=essl' in spec:
- args.extend([
- '-DHydrogen_USE_ESSL:BOOL=%s' % ('blas=essl' in spec)])
-
- return args
diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py
index 449e29a999..47787505aa 100644
--- a/var/spack/repos/builtin/packages/hydrogen/package.py
+++ b/var/spack/repos/builtin/packages/hydrogen/package.py
@@ -25,7 +25,6 @@
import os
import sys
from spack import *
-from spack.spec import UnsupportedCompilerError
class Hydrogen(CMakePackage):
@@ -60,9 +59,9 @@ class Hydrogen(CMakePackage):
variant('mpfr', default=False,
description='Support GNU MPFR\'s'
'arbitrary-precision floating-point arithmetic')
- variant('cuda', default=False,
+ variant('cuda', default=False,
description='Builds with support for GPUs via CUDA and cuDNN')
- variant('test', default=False,
+ variant('test', default=False,
description='Builds test suite')
# Note that #1712 forces us to enumerate the different blas variants
@@ -100,6 +99,9 @@ class Hydrogen(CMakePackage):
depends_on('cudnn', when='+cuda')
depends_on('cub', when='+cuda')
+ conflicts('@0:0.98', msg="Hydrogen did not exist before v0.99. " +
+ "Did you mean to use Elemental instead?")
+
@property
def libs(self):
shared = True if '+shared' in self.spec else False
@@ -107,15 +109,9 @@ class Hydrogen(CMakePackage):
'libEl', root=self.prefix, shared=shared, recursive=True
)
- @when('@:0.84' or '@0.99:')
def cmake_args(self):
spec = self.spec
- if '@:0.87.7' in spec and '%intel@:17.0.2' in spec:
- raise UnsupportedCompilerError(
- "Elemental {0} has a known bug with compiler: {1} {2}".format(
- spec.version, spec.compiler.name, spec.compiler.version))
-
args = [
'-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index 55a966e9a9..643bcecfee 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -106,7 +106,7 @@ class Lbann(CMakePackage):
# Get any recent versions or non-numeric version
# Note that develop > numeric and non-develop < numeric
- @when('@:0.90' or '@0.94:')
+ @when('@:0.90,0.94:')
def cmake_args(self):
spec = self.spec
args = self.common_config_args