summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorravil-mobile <ravil.mobile.com@gmail.com>2021-12-17 14:16:13 +0100
committerGitHub <noreply@github.com>2021-12-17 14:16:13 +0100
commite3f0be41d4e3dcceb02552eb4efb84c5e54bfa88 (patch)
treecd8edb065c2a04894b4f7c604a88bb0791a39e10 /var
parent618fd047299f2fc61c26bdf506007c497cddab7f (diff)
downloadspack-e3f0be41d4e3dcceb02552eb4efb84c5e54bfa88.tar.gz
spack-e3f0be41d4e3dcceb02552eb4efb84c5e54bfa88.tar.bz2
spack-e3f0be41d4e3dcceb02552eb4efb84c5e54bfa88.tar.xz
spack-e3f0be41d4e3dcceb02552eb4efb84c5e54bfa88.zip
Updated dpcpp package (#27953)
* Added installation of OpenMP as an option * Added a softlink (dpcpp) to clang++ to mimic the packaged version of dpcpp Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/dpcpp/package.py30
1 files changed, 23 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/dpcpp/package.py b/var/spack/repos/builtin/packages/dpcpp/package.py
index 0d5a361afd..6e67f4a390 100644
--- a/var/spack/repos/builtin/packages/dpcpp/package.py
+++ b/var/spack/repos/builtin/packages/dpcpp/package.py
@@ -16,19 +16,20 @@ class Dpcpp(CMakePackage):
git = 'https://github.com/intel/llvm.git'
version('develop', branch='sycl')
- version('2021-09', commit='bd68232bb96386bf7649345c0557ba520e73c02d')
+ version('2021.09', commit='bd68232bb96386bf7649345c0557ba520e73c02d')
maintainers = ['ravil-mobile']
variant('cuda', default=False, description='switch from OpenCL to CUDA')
variant('rocm', default=False, description='switch from OpenCL to ROCm')
variant('rocm-platform', default='AMD', values=('AMD', 'NVIDIA'), multi=False, description='choose ROCm backend')
+ variant('openmp', default=False, description='build with OpenMP without target offloading')
variant('esimd-cpu', default=False, description='build with ESIMD_CPU support')
variant('assertions', default=False, description='build with assertions')
variant('docs', default=False, description='build Doxygen documentation')
- variant('werror', default=False, description='Treat warnings as errors')
- variant('shared', default=False, description='Build shared libraries')
+ variant('werror', default=False, description='treat warnings as errors')
+ variant('shared', default=False, description='build shared libraries')
variant('remangle_libclc', default=True, description='remangle libclc gen. variants')
- variant('lld', default=False, description='Use LLD linker for build')
+ variant('lld', default=False, description='use LLD linker for build')
depends_on('cmake@3.16.2:', type='build')
depends_on('ninja@1.10.0:', type='build')
@@ -39,14 +40,14 @@ class Dpcpp(CMakePackage):
# depends_on('cuda@10.2.0:10.2.999', when='rocm-platform=NVIDIA', type='build')
# depends_on('hip@4.0.0:', when='+rocm', type='build')
- build_targets = ['deploy-sycl-toolchain']
- install_targets = ['deploy-sycl-toolchain']
-
root_cmakelists_dir = 'llvm'
def cmake_args(self):
llvm_external_projects = 'sycl;llvm-spirv;opencl;libdevice;xpti;xptifw'
+ if '+openmp' in self.spec:
+ llvm_external_projects += ';openmp'
+
sycl_dir = os.path.join(self.stage.source_path, 'sycl')
spirv_dir = os.path.join(self.stage.source_path, 'llvm-spirv')
xpti_dir = os.path.join(self.stage.source_path, 'xpti')
@@ -115,6 +116,13 @@ class Dpcpp(CMakePackage):
self.define('CUDA_TOOLKIT_ROOT_DIR', self.spec['cuda'].prefix)
)
+ if '+openmp' in self.spec:
+ omp_dir = os.path.join(self.stage.source_path, 'openmp')
+ args.extend([
+ self.define('LLVM_EXTERNAL_OPENMP_SOURCE_DIR', omp_dir),
+ self.define('OPENMP_ENABLE_LIBOMPTARGET', False),
+ ])
+
if self.compiler.name == 'gcc':
gcc_prefix = ancestor(self.compiler.cc, 2)
args.append(self.define('GCC_INSTALL_PREFIX', gcc_prefix))
@@ -125,6 +133,14 @@ class Dpcpp(CMakePackage):
if '+cuda' in self.spec:
env.set('CUDA_LIB_PATH', '{0}/lib64/stubs'.format(self.spec['cuda'].prefix))
+ @run_after("install")
+ def post_install(self):
+ clang_cpp_path = os.path.join(self.spec.prefix.bin, 'clang++')
+ dpcpp_path = os.path.join(self.spec.prefix.bin, 'dpcpp')
+
+ real_clang_cpp_path = os.path.realpath(clang_cpp_path)
+ os.symlink(real_clang_cpp_path, dpcpp_path)
+
def setup_run_environment(self, env):
bin_path = self.spec.prefix.bin
for env_var_name, compiler in zip(['CC', 'CXX'], ['clang', 'clang++']):