summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMartin Aumüller <aumuell@reserv.at>2021-05-28 13:50:03 +0200
committerGitHub <noreply@github.com>2021-05-28 13:50:03 +0200
commit0c290ef1c36a97bb284741e49002afae7dd91267 (patch)
tree78167ce2e82b742d12e252ad3d7e2daee31fde00 /var
parent1dd6bc27259ee1190b6052f1cd704f84bb84aa1f (diff)
downloadspack-0c290ef1c36a97bb284741e49002afae7dd91267.tar.gz
spack-0c290ef1c36a97bb284741e49002afae7dd91267.tar.bz2
spack-0c290ef1c36a97bb284741e49002afae7dd91267.tar.xz
spack-0c290ef1c36a97bb284741e49002afae7dd91267.zip
embree: add v3.13.0, fix build (#23986)
* embree: allow for compiling with gcc 7.3 strip out unsupported -mprefer-vector-width=256 * embree: fix build on AMD CPUs The ISAs that embree is compiled for have to match the CPU features enabled by the compiler, as embree derives theISA that it compiles for from the latter. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/embree/package.py58
1 files changed, 23 insertions, 35 deletions
diff --git a/var/spack/repos/builtin/packages/embree/package.py b/var/spack/repos/builtin/packages/embree/package.py
index d86787dcb6..524e8ec9c6 100644
--- a/var/spack/repos/builtin/packages/embree/package.py
+++ b/var/spack/repos/builtin/packages/embree/package.py
@@ -13,6 +13,7 @@ class Embree(CMakePackage):
url = "https://github.com/embree/embree/archive/v3.7.0.tar.gz"
maintainers = ['aumuell']
+ version('3.13.0', sha256='4d86a69508a7e2eb8710d571096ad024b5174834b84454a8020d3a910af46f4f')
version('3.12.1', sha256='0c9e760b06e178197dd29c9a54f08ff7b184b0487b5ba8b8be058e219e23336e')
version('3.12.0', sha256='f3646977c45a9ece1fb0cfe107567adcc645b1c77c27b36572d0aa98b888190c')
version('3.11.0', sha256='2ccc365c00af4389aecc928135270aba7488e761c09d7ebbf1bf3e62731b147d')
@@ -34,40 +35,27 @@ class Embree(CMakePackage):
def cmake_args(self):
spec = self.spec
- args = []
-
- args.append('-DBUILD_TESTING=OFF')
- args.append('-DEMBREE_TUTORIALS=OFF')
- args.append('-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON')
-
- if 'ispc' in spec:
- args.append('-DEMBREE_ISPC_SUPPORT=ON')
- else:
- args.append('-DEMBREE_ISPC_SUPPORT=OFF')
-
- # code selection and defines controlling namespace names are based on
- # defines controlled by compiler flags, so disable ISAs below compiler
- # flags chosen by spack
- if spec.target >= 'nehalem':
- args.append('-DEMBREE_ISA_SSE2=OFF')
- else:
- args.append('-DEMBREE_ISA_SSE2=ON')
-
- if spec.target >= 'sandybridge':
- args.append('-DEMBREE_ISA_SSE42=OFF')
- else:
- args.append('-DEMBREE_ISA_SSE42=ON')
-
- if spec.target >= 'haswell':
- args.append('-DEMBREE_ISA_AVX=OFF')
- else:
- args.append('-DEMBREE_ISA_AVX=ON')
-
- if spec.target >= 'skylake_avx512':
- args.append('-DEMBREE_ISA_AVX2=OFF')
- else:
- args.append('-DEMBREE_ISA_AVX2=ON')
-
- args.append('-DEMBREE_ISA_AVX512SKX=ON')
+ args = [
+ '-DBUILD_TESTING=OFF',
+ '-DEMBREE_TUTORIALS=OFF',
+ '-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON',
+ self.define_from_variant('EMBREE_ISPC_SUPPORT', 'ispc'),
+
+ # code selection and defines controlling namespace names are based on
+ # defines controlled by compiler flags, so disable ISAs below compiler
+ # flags chosen by spack
+ self.define('EMBREE_ISA_SSE2', 'sse4_2' not in spec.target),
+ self.define('EMBREE_ISA_SSE42', 'avx' not in spec.target),
+ self.define('EMBREE_ISA_AVX', 'avx2' not in spec.target),
+ self.define('EMBREE_ISA_AVX2', 'avx512' not in spec.target),
+ self.define('EMBREE_ISA_AVX512SKX', True),
+ ]
+
+ if spec.satisfies('%gcc@:7.99'):
+ # remove unsupported -mprefer-vector-width=256, otherwise copied
+ # from common/cmake/gnu.cmake
+ args.append('-DFLAGS_AVX512SKX=-mavx512f -mavx512dq -mavx512cd'
+ ' -mavx512bw -mavx512vl -mf16c -mavx2 -mfma -mlzcnt'
+ ' -mbmi -mbmi2')
return args