
This commit adds some changes which improve use of Spack-installed oneAPI packages with Spack-generated modules, but not within Spack (e.g. if you install some of these packages with Spack, then load their associated modules to build other packages outside of Spack). The majority of the PR diff is refactoring. The functional changes are: * intel-oneapi-mkl: * setup_run_environment: update Intel compiler flags to RPATH the mkl libs * intel-oneapi-compilers: update the compiler configuration to RPATH libraries installed by this package (note that Spack already handled this when installing dependent packages with Spack, but this is specifically to use the intel-oneapi-compilers package outside of Spack). Specifically: * inject_rpaths: this modifies the binaries installed as part of the intel-oneapi-compilers package to RPATH libraries provided by this package * extend_config_flags: this instructs the compiler executables provided by this package to RPATH those same libraries Refactoring includes: * intel-oneapi-compilers: in addition to the functional changes, a large portion of this diff is reorganizing the creation of resources/archives downloaded for the install * The base oneAPI package renamed component_path, so several packages changed as a result: * intel-oneapi-dpl * intel-oneapi-dnn * extrae * intel-oneapi-mpi: * Perform file filtering in one pass rather than two
58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
|
import platform
|
|
|
|
from spack.package import *
|
|
|
|
|
|
@IntelOneApiPackage.update_description
|
|
class IntelOneapiDpl(IntelOneApiLibraryPackage):
|
|
"""The Intel oneAPI DPC++ Library (oneDPL) is a companion to the Intel
|
|
oneAPI DPC++/C++ Compiler and provides an alternative for C++
|
|
developers who create heterogeneous applications and
|
|
solutions. Its APIs are based on familiar standards-C++ STL,
|
|
Parallel STL (PSTL), Boost.Compute, and SYCL*-to maximize
|
|
productivity and performance across CPUs, GPUs, and FPGAs.
|
|
|
|
"""
|
|
|
|
maintainers = ['rscohn2']
|
|
|
|
homepage = 'https://github.com/oneapi-src/oneDPL'
|
|
|
|
if platform.system() == 'Linux':
|
|
version('2021.7.0',
|
|
url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18752/l_oneDPL_p_2021.7.0.631_offline.sh',
|
|
sha256='1e2d735d5eccfe8058e18f96d733eda8de5b7a07d613447b7d483fd3f9cec600',
|
|
expand=False)
|
|
version('2021.6.0',
|
|
url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18372/l_oneDPL_p_2021.6.0.501_offline.sh',
|
|
sha256='0225f133a6c38b36d08635986870284a958e5286c55ca4b56a4058bd736f8f4f',
|
|
expand=False)
|
|
version('2021.5.0',
|
|
url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18189/l_oneDPL_p_2021.5.0.445_offline.sh',
|
|
sha256='7d4adf300a18f779c3ab517070c61dba10e3952287d5aef37c38f739e9041a68',
|
|
expand=False)
|
|
version('2021.4.0',
|
|
url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17889/l_oneDPL_p_2021.4.0.337_offline.sh',
|
|
sha256='540ef0d308c4b0f13ea10168a90edd42a56dc0883024f6f1a678b94c10b5c170',
|
|
expand=False)
|
|
|
|
@property
|
|
def component_dir(self):
|
|
return 'dpl'
|
|
|
|
@property
|
|
def headers(self):
|
|
include_path = join_path(self.component_prefix, 'linux', 'include')
|
|
headers = find_headers('*', include_path, recursive=True)
|
|
# Force this directory to be added to include path, even
|
|
# though no files are here because all includes are relative
|
|
# to this path
|
|
headers.directories = [include_path]
|
|
return headers
|