From 236b34f3df38d0f44ada307ece354f92a96a6a91 Mon Sep 17 00:00:00 2001 From: "Nichols A. Romero" Date: Fri, 9 Nov 2018 10:16:11 -0600 Subject: 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. --- etc/spack/defaults/packages.yaml | 1 + lib/spack/spack/test/package_sanity.py | 7 +++++-- var/spack/repos/builtin/packages/fftw/package.py | 3 +++ var/spack/repos/builtin/packages/intel-mkl/package.py | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml index 5c38ddb683..aaab12b3ef 100644 --- a/etc/spack/defaults/packages.yaml +++ b/etc/spack/defaults/packages.yaml @@ -22,6 +22,7 @@ packages: blas: [openblas] daal: [intel-daal] elf: [elfutils] + fftw-api: [fftw] gl: [mesa, opengl] glu: [mesa-glu, openglu] golang: [gcc] diff --git a/lib/spack/spack/test/package_sanity.py b/lib/spack/spack/test/package_sanity.py index f31209c702..a8c84bd70d 100644 --- a/lib/spack/spack/test/package_sanity.py +++ b/lib/spack/spack/test/package_sanity.py @@ -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(): diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py index 0d424ce029..d3d8795fee 100644 --- a/var/spack/repos/builtin/packages/fftw/package.py +++ b/var/spack/repos/builtin/packages/fftw/package.py @@ -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): diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py index e11b4c8e47..4b04e97d34 100644 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -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 -- cgit v1.2.3-60-g2f50