LBANN flags and OpenCV variant (#5951)
* Fixed the datatype flag in the LBANN package. Fixed where the datatype flag should be set. * Added variant to OpenCV to disable building DNN support * Fixed a bug in how the elemental package tries to find its Fortran library. The current method does not work with Intel compilers. * Added necessary paths for cuDNN and CUB. * Addressed flake8 issues in Elemental package. * Fixed several flake8 errors. Added variant to build with or without support for arbitrary-precision floating point arithmetic. * Added the proper CMake flag when MPFR support is disabled. * Fixed a bug in how the cudnn path was being set when there was no cudnn requested. Also requested that OpenCV is built without eigen support. * Fixed another bug where a dependency may not be there and thus should not be always checked.
This commit is contained in:

committed by
becker33

parent
0d624eac55
commit
86b7b84ddf
@@ -22,6 +22,7 @@
|
||||
# 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 *
|
||||
from spack.spec import UnsupportedCompilerError
|
||||
|
||||
@@ -67,6 +68,9 @@ class Elemental(CMakePackage):
|
||||
values=('Debug', 'Release'))
|
||||
variant('blas', default='openblas', values=('openblas', 'mkl'),
|
||||
description='Enable the use of OpenBlas/MKL')
|
||||
variant('mpfr', default=False,
|
||||
description='Support GNU MPFR\'s'
|
||||
'arbitrary-precision floating-point arithmetic')
|
||||
|
||||
# Note that #1712 forces us to enumerate the different blas variants
|
||||
depends_on('blas', when='~openmp_blas ~int64_blas')
|
||||
@@ -87,9 +91,9 @@ class Elemental(CMakePackage):
|
||||
depends_on('scalapack', when='+scalapack ~int64_blas')
|
||||
extends('python', when='+python')
|
||||
depends_on('python@:2.8', when='+python')
|
||||
depends_on('gmp')
|
||||
depends_on('mpc')
|
||||
depends_on('mpfr')
|
||||
depends_on('gmp', when='+mpfr')
|
||||
depends_on('mpc', when='+mpfr')
|
||||
depends_on('mpfr', when='+mpfr')
|
||||
|
||||
patch('elemental_cublas.patch', when='+cublas')
|
||||
patch('cmake_0.87.7.patch', when='@0.87.7')
|
||||
@@ -123,14 +127,23 @@ def cmake_args(self):
|
||||
'-DEL_DISABLE_PARMETIS:BOOL=%s' % ('~parmetis' in spec),
|
||||
'-DEL_DISABLE_QUAD:BOOL=%s' % ('~quad' in spec),
|
||||
'-DEL_USE_64BIT_INTS:BOOL=%s' % ('+int64' in spec),
|
||||
'-DEL_USE_64BIT_BLAS_INTS:BOOL=%s' % ('+int64_blas' in spec)]
|
||||
'-DEL_USE_64BIT_BLAS_INTS:BOOL=%s' % ('+int64_blas' in spec),
|
||||
'-DEL_DISABLE_MPFR:BOOL=%s' % ('~mpfr' in spec)]
|
||||
|
||||
# see <stage_folder>/debian/rules as an example:
|
||||
mpif77 = Executable(spec['mpi'].mpif77)
|
||||
libgfortran = LibraryList(mpif77('--print-file-name',
|
||||
'libgfortran.%s' % dso_suffix,
|
||||
output=str))
|
||||
args.append('-DGFORTRAN_LIB=%s' % libgfortran.libraries[0])
|
||||
if self.spec.satisfies('%intel'):
|
||||
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))
|
||||
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))
|
||||
if libfortran:
|
||||
args.append('-DGFORTRAN_LIB=%s' % libfortran.libraries[0])
|
||||
|
||||
# If using 64bit int BLAS libraries, elemental has to build
|
||||
# them internally
|
||||
|
Reference in New Issue
Block a user