Introduce fftw-api virtual package for Intel-MKL and FFTW (#9618)

* Introduce FFTW2 and FFT3 providers for Intel-MKL and FFTW Spack packages.

* make fftw default package for fftw-api virtual package

* virtual package test assertion now provides location of default virtual packages.

* Change name of virtual package to fftw-api and used versioned interface.
This commit is contained in:
Nichols A. Romero
2018-11-09 10:16:11 -06:00
committed by Todd Gamblin
parent 988d37757f
commit 236b34f3df
4 changed files with 10 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ packages:
blas: [openblas]
daal: [intel-daal]
elf: [elfutils]
fftw-api: [fftw]
gl: [mesa, opengl]
glu: [mesa-glu, openglu]
golang: [gcc]

View File

@@ -47,9 +47,12 @@ def test_all_virtual_packages_have_default_providers():
defaults = spack.config.get('packages', scope='defaults')
default_providers = defaults['all']['providers']
providers = spack.repo.path.provider_index.providers
default_providers_filename = \
spack.config.config.scopes['defaults'].get_section_filename('packages')
for provider in providers:
assert provider in default_providers
assert provider in default_providers, \
"all providers must have a default in %s" \
% default_providers_filename
def test_package_version_consistency():

View File

@@ -72,6 +72,9 @@ class Fftw(AutotoolsPackage):
# https://github.com/FFTW/fftw3/commit/902d0982522cdf6f0acd60f01f59203824e8e6f3
conflicts('%gcc@8:8.9999', when="@3.3.7")
provides('fftw-api@2', when='@2.1.5')
provides('fftw-api@3', when='@3:')
@property
def libs(self):

View File

@@ -53,6 +53,7 @@ class IntelMkl(IntelPackage):
provides('lapack')
provides('scalapack')
provides('mkl')
provides('fftw-api@3', when='@2017:')
if sys.platform == 'darwin':
# there is no libmkl_gnu_thread on macOS