summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/intel-tbb/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/intel-tbb/package.py')
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/package.py280
1 files changed, 134 insertions, 146 deletions
diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py
index 1ed0b60445..60814d23c2 100644
--- a/var/spack/repos/builtin/packages/intel-tbb/package.py
+++ b/var/spack/repos/builtin/packages/intel-tbb/package.py
@@ -17,58 +17,62 @@ class IntelTbb(CMakePackage):
C++ programs that take full advantage of multicore performance, that are
portable and composable, and that have future-proof scalability.
"""
+
homepage = "https://www.threadingbuildingblocks.org/"
- url_prefix = 'https://github.com/oneapi-src/oneTBB/'
- url = url_prefix + 'archive/v2020.1.tar.gz'
+ url_prefix = "https://github.com/oneapi-src/oneTBB/"
+ url = url_prefix + "archive/v2020.1.tar.gz"
- maintainers = ['rscohn2']
+ maintainers = ["rscohn2"]
# Note: when adding new versions, please check and update the
# patches, filters and url_for_version() below as needed.
- version('2021.3.0', sha256='8f616561603695bbb83871875d2c6051ea28f8187dbe59299961369904d1d49e')
- version('2021.2.0', sha256='cee20b0a71d977416f3e3b4ec643ee4f38cedeb2a9ff015303431dd9d8d79854')
- version('2021.1.1', sha256='b182c73caaaabc44ddc5ad13113aca7e453af73c1690e4061f71dfe4935d74e8')
- version('2020.3', sha256='ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3',
- preferred=True)
- version('2020.2', sha256='4804320e1e6cbe3a5421997b52199e3c1a3829b2ecb6489641da4b8e32faf500')
- version('2020.1', sha256='7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971')
- version('2020.0', sha256='57714f2d2cf33935db33cee93af57eb3ecd5a7bef40c1fb7ca4a41d79684b118')
- version('2019.9', sha256='3f5ea81b9caa195f1967a599036b473b2e7c347117330cda99b79cfcf5b77c84')
- version('2019.8', sha256='6b540118cbc79f9cbc06a35033c18156c21b84ab7b6cf56d773b168ad2b68566')
- version('2019.7', sha256='94847fc627ed081c63ea253e31f23645ed3671548106b095ce303d1da5d76275')
- version('2019.6', sha256='21cd496ac768560e70d35e5423878aa3bcf0285f7194be77935d8febf0b18f47')
- version('2019.5', sha256='abf9236e6ec9a3675fa59ab56c2192c7ab4f7096a82af118e8efa514b2541578')
- version('2019.4', sha256='673e540aba6e526b220cbeacc3e4ff7b19a8689a00d7a09a9dc94396d73b24df')
- version('2019.3', sha256='4cb6bde796ae056e7c29f31bfdc6cfd0cfe848925219e9c82a20f09158e81542')
- version('2019.2', sha256='3bbe21054bd5b593ef99d4dfe451432cbf1f6f9429cd0dd543e879ef7e4e3327')
- version('2019.1', sha256='e6fb8dd1a1ae834b4e5f4ae6c4c87a3362f81a3aaeddfa6325168c6cfee59391')
- version('2019', sha256='91f00308a4e431bd9632b439d516134d7084f1eb35f52b7c9b111b46bdfcf093')
- version('2018.6', sha256='0ebb5fc877871ef15f7395d6e3c86de4ffedb820dc336383a3ab71fc39426aa7')
- version('2018.5', sha256='b8dbab5aea2b70cf07844f86fa413e549e099aa3205b6a04059ca92ead93a372')
- version('2018.4', sha256='c973b41b6da3db10efa7e14ce64a850e3fbfbcc16374494a005bf994d53a770a')
- version('2018.3', sha256='e5f19d747f6adabfc7daf2cc0a1ddcfab0f26bc083d70ea0a63def4a9f3919c5')
- version('2018.2', sha256='733c4dba646573b8285b1923dc106f0d771725bea620baa3659c86ab9312a1f4')
- version('2018.1', sha256='a9f51e0d081fbdda441d0150e759c7562318d6d7bc5a0c9a9d8064217d4d8d8d')
- version('2018', sha256='d427c58a59863c5f9510fffb3d05cd1bcc7abb94cdde1613407559e88b1263ab')
- version('2017.8', sha256='227cc1a8329da67f9957285f0020ad4d73d9ce26cbf88614349b8b74bb189ae1')
- version('2017.7', sha256='f487243e5931e967479189ef75946f02e3bb666ea73dcc19ac2828edd5550746')
- version('2017.6', sha256='b0f40edd010b90ce2519c1cebfa6f33216a1828d4fba19291b5cd23bd7fe809b')
- version('2017.5', sha256='b785e7181317350f0bb20f7bffda20bdecde7e82b824d2e5eb6d408a3b9cbeaf')
- version('2017.4', sha256='9a70ae3068767bf8c530bf98b9bbc655e36e82a301b347f7de76f99f401df1dd')
- version('2017.3', sha256='230ed3ff32bb3e91df1f59e4a3a567bde02639d9970b7e87cee0421b4c0b0f23')
- version('2017.2', sha256='dd37c896f95ca2357e828c24c9c4a169c6a6b5c905b3862a6cab09474d164497')
- version('2017.1', sha256='9b5b36b6d0ed97a3a1711b9095e78aed79bc998957a4a6b3d8a7af063523f037')
- version('2017', sha256='470544b0f374987273cc12e7706353edba8f9547578291d45b5b29358d4e5e81')
- version('4.4.6', sha256='65101b3a0eda38320ec3e3603daa79c54e6a60fb59ed2959738eaf4ce6d17f0a')
- version('4.4.5', sha256='2e372703fe444442c77760229897f00bb4babff62f7d0861b3f2783883cb257e')
- version('4.4.4', sha256='3ed03838c4e368b78305b0561cac48d369919bb4d9d68edd4d8a3becd6f62f5c')
- version('4.4.3', sha256='f0ff2e3735c8057b792f29c96f4f7623c1e4c76abfeda88be48645b8338c0f00')
- version('4.4.2', sha256='1ab10e70354685cee3ddf614f3e291434cea86c8eb62031e025f4052278152ad')
- version('4.4.1', sha256='05737bf6dd220b31aad63d77ca59c742271f81b4cc6643aa6f93d37450ae32b5')
- version('4.4', sha256='93c74b6054c69c86fa49d0fce7c50061fc907cb198a7237b8dd058298fd40c0e')
-
- provides('tbb')
+ version("2021.3.0", sha256="8f616561603695bbb83871875d2c6051ea28f8187dbe59299961369904d1d49e")
+ version("2021.2.0", sha256="cee20b0a71d977416f3e3b4ec643ee4f38cedeb2a9ff015303431dd9d8d79854")
+ version("2021.1.1", sha256="b182c73caaaabc44ddc5ad13113aca7e453af73c1690e4061f71dfe4935d74e8")
+ version(
+ "2020.3",
+ sha256="ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3",
+ preferred=True,
+ )
+ version("2020.2", sha256="4804320e1e6cbe3a5421997b52199e3c1a3829b2ecb6489641da4b8e32faf500")
+ version("2020.1", sha256="7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971")
+ version("2020.0", sha256="57714f2d2cf33935db33cee93af57eb3ecd5a7bef40c1fb7ca4a41d79684b118")
+ version("2019.9", sha256="3f5ea81b9caa195f1967a599036b473b2e7c347117330cda99b79cfcf5b77c84")
+ version("2019.8", sha256="6b540118cbc79f9cbc06a35033c18156c21b84ab7b6cf56d773b168ad2b68566")
+ version("2019.7", sha256="94847fc627ed081c63ea253e31f23645ed3671548106b095ce303d1da5d76275")
+ version("2019.6", sha256="21cd496ac768560e70d35e5423878aa3bcf0285f7194be77935d8febf0b18f47")
+ version("2019.5", sha256="abf9236e6ec9a3675fa59ab56c2192c7ab4f7096a82af118e8efa514b2541578")
+ version("2019.4", sha256="673e540aba6e526b220cbeacc3e4ff7b19a8689a00d7a09a9dc94396d73b24df")
+ version("2019.3", sha256="4cb6bde796ae056e7c29f31bfdc6cfd0cfe848925219e9c82a20f09158e81542")
+ version("2019.2", sha256="3bbe21054bd5b593ef99d4dfe451432cbf1f6f9429cd0dd543e879ef7e4e3327")
+ version("2019.1", sha256="e6fb8dd1a1ae834b4e5f4ae6c4c87a3362f81a3aaeddfa6325168c6cfee59391")
+ version("2019", sha256="91f00308a4e431bd9632b439d516134d7084f1eb35f52b7c9b111b46bdfcf093")
+ version("2018.6", sha256="0ebb5fc877871ef15f7395d6e3c86de4ffedb820dc336383a3ab71fc39426aa7")
+ version("2018.5", sha256="b8dbab5aea2b70cf07844f86fa413e549e099aa3205b6a04059ca92ead93a372")
+ version("2018.4", sha256="c973b41b6da3db10efa7e14ce64a850e3fbfbcc16374494a005bf994d53a770a")
+ version("2018.3", sha256="e5f19d747f6adabfc7daf2cc0a1ddcfab0f26bc083d70ea0a63def4a9f3919c5")
+ version("2018.2", sha256="733c4dba646573b8285b1923dc106f0d771725bea620baa3659c86ab9312a1f4")
+ version("2018.1", sha256="a9f51e0d081fbdda441d0150e759c7562318d6d7bc5a0c9a9d8064217d4d8d8d")
+ version("2018", sha256="d427c58a59863c5f9510fffb3d05cd1bcc7abb94cdde1613407559e88b1263ab")
+ version("2017.8", sha256="227cc1a8329da67f9957285f0020ad4d73d9ce26cbf88614349b8b74bb189ae1")
+ version("2017.7", sha256="f487243e5931e967479189ef75946f02e3bb666ea73dcc19ac2828edd5550746")
+ version("2017.6", sha256="b0f40edd010b90ce2519c1cebfa6f33216a1828d4fba19291b5cd23bd7fe809b")
+ version("2017.5", sha256="b785e7181317350f0bb20f7bffda20bdecde7e82b824d2e5eb6d408a3b9cbeaf")
+ version("2017.4", sha256="9a70ae3068767bf8c530bf98b9bbc655e36e82a301b347f7de76f99f401df1dd")
+ version("2017.3", sha256="230ed3ff32bb3e91df1f59e4a3a567bde02639d9970b7e87cee0421b4c0b0f23")
+ version("2017.2", sha256="dd37c896f95ca2357e828c24c9c4a169c6a6b5c905b3862a6cab09474d164497")
+ version("2017.1", sha256="9b5b36b6d0ed97a3a1711b9095e78aed79bc998957a4a6b3d8a7af063523f037")
+ version("2017", sha256="470544b0f374987273cc12e7706353edba8f9547578291d45b5b29358d4e5e81")
+ version("4.4.6", sha256="65101b3a0eda38320ec3e3603daa79c54e6a60fb59ed2959738eaf4ce6d17f0a")
+ version("4.4.5", sha256="2e372703fe444442c77760229897f00bb4babff62f7d0861b3f2783883cb257e")
+ version("4.4.4", sha256="3ed03838c4e368b78305b0561cac48d369919bb4d9d68edd4d8a3becd6f62f5c")
+ version("4.4.3", sha256="f0ff2e3735c8057b792f29c96f4f7623c1e4c76abfeda88be48645b8338c0f00")
+ version("4.4.2", sha256="1ab10e70354685cee3ddf614f3e291434cea86c8eb62031e025f4052278152ad")
+ version("4.4.1", sha256="05737bf6dd220b31aad63d77ca59c742271f81b4cc6643aa6f93d37450ae32b5")
+ version("4.4", sha256="93c74b6054c69c86fa49d0fce7c50061fc907cb198a7237b8dd058298fd40c0e")
+
+ provides("tbb")
# Clang builds incorrectly determine GCC version which in turn incorrectly
# causes a mismatch in C++ features resulting in a link error. This also
@@ -77,49 +81,46 @@ class IntelTbb(CMakePackage):
#
# See https://github.com/intel/tbb/pull/147 for details.
#
- conflicts('%apple-clang', when='@:2019.6',
- msg='2019.7 or later required for clang')
- conflicts('%clang', when='@:2019.6',
- msg='2019.7 or later required for clang')
+ conflicts("%apple-clang", when="@:2019.6", msg="2019.7 or later required for clang")
+ conflicts("%clang", when="@:2019.6", msg="2019.7 or later required for clang")
- conflicts('%gcc@6.1:', when='@:4.4.3',
- msg='4.4.4 or later required for GCC >= 6.1.')
+ conflicts("%gcc@6.1:", when="@:4.4.3", msg="4.4.4 or later required for GCC >= 6.1.")
- variant('shared', default=True,
- description='Builds a shared version of TBB libraries')
+ variant("shared", default=True, description="Builds a shared version of TBB libraries")
- variant('cxxstd',
- default='default',
- values=('default', '98', '11', '14', '17'),
- multi=False,
- description='Use the specified C++ standard when building.')
+ variant(
+ "cxxstd",
+ default="default",
+ values=("default", "98", "11", "14", "17"),
+ multi=False,
+ description="Use the specified C++ standard when building.",
+ )
- variant('tm', default=True,
- description='Enable use of transactional memory on x86')
+ variant("tm", default=True, description="Enable use of transactional memory on x86")
# Testing version ranges inside when clauses was fixed in e9ee9eaf.
# See: #8957 and #13989.
# Build and install CMake config files if we're new enough.
# CMake support started in 2017.7.
- depends_on('cmake@3.1.0:', type='build', when='@2017.7:')
+ depends_on("cmake@3.1.0:", type="build", when="@2017.7:")
- depends_on('hwloc', when='@2021.1.1:')
+ depends_on("hwloc", when="@2021.1.1:")
# Patch for pedantic warnings (#10836). This was fixed in the TBB
# source tree in 2019.6.
- patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.1:2019.5')
- patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0')
+ patch("gcc_generic-pedantic-2019.patch", level=1, when="@2019.1:2019.5")
+ patch("gcc_generic-pedantic-4.4.patch", level=1, when="@:2019.0")
# Patch cmakeConfig.cmake.in to find the libraries where we install them.
- patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:2021.0')
- patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4')
+ patch("tbb_cmakeConfig-2019.5.patch", level=0, when="@2019.5:2021.0")
+ patch("tbb_cmakeConfig.patch", level=0, when="@2017.7:2019.4")
# Restore the debug targets.
patch("makefile-debug.patch", when="@2020:2021.0")
# Some very old systems don't support transactional memory.
- patch("disable-tm.patch", when='~tm')
+ patch("disable-tm.patch", when="~tm")
# Add support for building on arm64 macOS,
# also included in hombrew and already available upstream:
@@ -129,24 +130,18 @@ class IntelTbb(CMakePackage):
# Support for building with %nvhpc
# 1) remove flags nvhpc compilers do not recognize
- patch("intel-tbb.nvhpc-remove-flags.2017.patch",
- when="@2017:2018.9 %nvhpc")
- patch("intel-tbb.nvhpc-remove-flags.2019.patch",
- when="@2019:2019.0 %nvhpc")
- patch("intel-tbb.nvhpc-remove-flags.2019.1.patch",
- when="@2019.1:2019.6 %nvhpc")
- patch("intel-tbb.nvhpc-remove-flags.2019.7.patch",
- when="@2019.7:2019.8 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2017.patch", when="@2017:2018.9 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.patch", when="@2019:2019.0 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.1.patch", when="@2019.1:2019.6 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.7.patch", when="@2019.7:2019.8 %nvhpc")
# The 2019.9 patch below was tested successfully
# on @2019.9, @2020.0, and @2020.3
- patch("intel-tbb.nvhpc-remove-flags.2019.9.patch",
- when="@2019.9: %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.9.patch", when="@2019.9: %nvhpc")
# 2) Fix generation of version script tbb.def for ld (nvc++ -E
# appears to produce more output than g++ -E which was causing problems)
# The 2017 patch below was tested on @2017, @2017.8, @2018,
# @2018.3, @2018.6, 2019, @2019.[1-9], and @2020.[0-3]
- patch("intel-tbb.nvhpc-version-script-fix.2017.patch",
- when="@2017 %nvhpc")
+ patch("intel-tbb.nvhpc-version-script-fix.2017.patch", when="@2017 %nvhpc")
# Version and tar file names:
# 2020.0 --> v2020.0.tar.gz starting with 2020
@@ -155,25 +150,24 @@ class IntelTbb(CMakePackage):
# 4.4.6 --> 4.4.6.tar.gz
#
def url_for_version(self, version):
- url = self.url_prefix + 'archive/{0}.tar.gz'
+ url = self.url_prefix + "archive/{0}.tar.gz"
if version[0] >= 2020:
- name = 'v{0}'.format(version)
+ name = "v{0}".format(version)
elif version[0] >= 2017 and len(version) > 1:
- name = '{0}_U{1}'.format(version[0], version[1])
+ name = "{0}_U{1}".format(version[0], version[1])
else:
- name = '{0}'.format(version)
+ name = "{0}".format(version)
return url.format(name)
# We set OS here in case the user has it set to something else
# that TBB doesn't expect.
def setup_build_environment(self, env):
- env.set('OS', platform.system())
+ env.set("OS", platform.system())
- @when('@:2020.3')
+ @when("@:2020.3")
def coerce_to_spack(self, tbb_build_subdir):
for compiler in ["icc", "gcc", "clang"]:
- fs = glob.glob(join_path(tbb_build_subdir,
- "*.%s.inc" % compiler))
+ fs = glob.glob(join_path(tbb_build_subdir, "*.%s.inc" % compiler))
for f in fs:
lines = open(f).readlines()
of = open(f, "w")
@@ -187,23 +181,24 @@ class IntelTbb(CMakePackage):
else:
of.write(lin)
- @when('@:2020.3')
+ @when("@:2020.3")
def cmake(self, spec, prefix):
return
- @when('@:2020.3')
+ @when("@:2020.3")
def cmake_args(self):
return
- @when('@:2020.3')
+ @when("@:2020.3")
def build(self, spec, prefix):
# Deactivate use of RTM with GCC when on an OS with a very old
# assembler.
- if (spec.satisfies('%gcc@4.8.0: os=rhel6')
- or spec.satisfies('%gcc@4.8.0: os=centos6')
- or spec.satisfies('%gcc@4.8.0: os=scientific6')):
- filter_file(r'RTM_KEY.*=.*rtm.*', 'RTM_KEY =',
- join_path('build', 'linux.gcc.inc'))
+ if (
+ spec.satisfies("%gcc@4.8.0: os=rhel6")
+ or spec.satisfies("%gcc@4.8.0: os=centos6")
+ or spec.satisfies("%gcc@4.8.0: os=scientific6")
+ ):
+ filter_file(r"RTM_KEY.*=.*rtm.*", "RTM_KEY =", join_path("build", "linux.gcc.inc"))
# We need to follow TBB's compiler selection logic to get the proper
# build + link flags but we still need to use spack's compiler wrappers
@@ -217,9 +212,9 @@ class IntelTbb(CMakePackage):
#
self.coerce_to_spack("build")
- if spec.satisfies('%clang') or spec.satisfies('%apple-clang'):
+ if spec.satisfies("%clang") or spec.satisfies("%apple-clang"):
tbb_compiler = "clang"
- elif spec.satisfies('%intel'):
+ elif spec.satisfies("%intel"):
tbb_compiler = "icc"
else:
tbb_compiler = "gcc"
@@ -229,12 +224,11 @@ class IntelTbb(CMakePackage):
# Static builds of TBB are enabled by including 'big_iron.inc' file
# See caveats in 'big_iron.inc' for limits on using TBB statically
# Lore states this file must be handed to make before other options
- if '+shared' not in self.spec:
+ if "+shared" not in self.spec:
make_opts.append("extra_inc=big_iron.inc")
- if spec.variants['cxxstd'].value != 'default':
- make_opts.append('stdver=c++{0}'.
- format(spec.variants['cxxstd'].value))
+ if spec.variants["cxxstd"].value != "default":
+ make_opts.append("stdver=c++{0}".format(spec.variants["cxxstd"].value))
#
# tbb does not have a configure script or make install target
@@ -243,80 +237,74 @@ class IntelTbb(CMakePackage):
make_opts.append("compiler={0}".format(tbb_compiler))
make(*make_opts)
- @when('@:2020.3')
+ @when("@:2020.3")
def install(self, spec, prefix):
mkdirp(prefix)
mkdirp(prefix.lib)
# install headers to {prefix}/include
- install_tree('include', prefix.include)
+ install_tree("include", prefix.include)
# install libs to {prefix}/lib
- tbb_lib_names = ["libtbb",
- "libtbbmalloc",
- "libtbbmalloc_proxy"]
+ tbb_lib_names = ["libtbb", "libtbbmalloc", "libtbbmalloc_proxy"]
for lib_name in tbb_lib_names:
# install release libs
- install(join_path("build", "*release", lib_name + ".*"),
- prefix.lib)
+ install(join_path("build", "*release", lib_name + ".*"), prefix.lib)
# install debug libs if they exist
- install(join_path("build", "*debug", lib_name + "_debug.*"),
- prefix.lib)
+ install(join_path("build", "*debug", lib_name + "_debug.*"), prefix.lib)
- if spec.satisfies('@2017.8,2018.1:', strict=True):
+ if spec.satisfies("@2017.8,2018.1:", strict=True):
# Generate and install the CMake Config file.
- cmake_args = ('-DTBB_ROOT={0}'.format(prefix),
- '-DTBB_OS={0}'.format(platform.system()),
- '-P',
- 'tbb_config_generator.cmake')
- with working_dir(join_path(self.stage.source_path, 'cmake')):
+ cmake_args = (
+ "-DTBB_ROOT={0}".format(prefix),
+ "-DTBB_OS={0}".format(platform.system()),
+ "-P",
+ "tbb_config_generator.cmake",
+ )
+ with working_dir(join_path(self.stage.source_path, "cmake")):
inspect.getmodule(self).cmake(*cmake_args)
- @when('@:2020.3')
- @run_after('install')
+ @when("@:2020.3")
+ @run_after("install")
def darwin_fix(self):
# Replace @rpath in ids with full path
- if sys.platform == 'darwin':
+ if sys.platform == "darwin":
fix_darwin_install_name(self.prefix.lib)
@property
def libs(self):
- shared = True if '+shared' in self.spec else False
- return find_libraries(
- 'libtbb*', root=self.prefix, shared=shared, recursive=True)
+ shared = True if "+shared" in self.spec else False
+ return find_libraries("libtbb*", root=self.prefix, shared=shared, recursive=True)
- @when('@2021.1.1:')
+ @when("@2021.1.1:")
def cmake_args(self):
spec = self.spec
options = []
- options.append('-DCMAKE_HWLOC_2_INCLUDE_PATH=%s' %
- spec['hwloc'].prefix.include)
- options.append('-DCMAKE_HWLOC_2_LIBRARY_PATH=%s' %
- spec['hwloc'].libs)
- options.append('-DTBB_CPF=ON')
- options.append('-DTBB_STRICT=OFF')
- if spec.variants['cxxstd'].value != 'default':
- options.append('-DCMAKE_CXX_STANDARD=%s' %
- spec.variants['cxxstd'].value)
+ options.append("-DCMAKE_HWLOC_2_INCLUDE_PATH=%s" % spec["hwloc"].prefix.include)
+ options.append("-DCMAKE_HWLOC_2_LIBRARY_PATH=%s" % spec["hwloc"].libs)
+ options.append("-DTBB_CPF=ON")
+ options.append("-DTBB_STRICT=OFF")
+ if spec.variants["cxxstd"].value != "default":
+ options.append("-DCMAKE_CXX_STANDARD=%s" % spec.variants["cxxstd"].value)
return options
- @run_after('install')
+ @run_after("install")
def install_pkgconfig(self):
# pkg-config generation is introduced in May 5, 2021.
# It must not be overwritten by spack-generated tbb.pc.
# https://github.com/oneapi-src/oneTBB/commit/478de5b1887c928e52f029d706af6ea640a877be
- if self.spec.satisfies('@:2021.2.0', strict=True):
+ if self.spec.satisfies("@:2021.2.0", strict=True):
mkdirp(self.prefix.lib.pkgconfig)
- with open(join_path(self.prefix.lib.pkgconfig, 'tbb.pc'), 'w') as f:
- f.write('prefix={0}\n'.format(self.prefix))
- f.write('exec_prefix=${prefix}\n')
- f.write('libdir={0}\n'.format(self.prefix.lib))
- f.write('includedir={0}\n'.format(self.prefix.include))
- f.write('\n')
- f.write('Name: Threading Building Blocks\n')
- f.write('Description: Intel\'s parallelism library for C++\n')
- f.write('Version: {0}\n'.format(self.spec.version))
- f.write('Cflags: -I${includedir}\n')
- f.write('Libs: -L${libdir} -ltbb -latomic\n')
+ with open(join_path(self.prefix.lib.pkgconfig, "tbb.pc"), "w") as f:
+ f.write("prefix={0}\n".format(self.prefix))
+ f.write("exec_prefix=${prefix}\n")
+ f.write("libdir={0}\n".format(self.prefix.lib))
+ f.write("includedir={0}\n".format(self.prefix.include))
+ f.write("\n")
+ f.write("Name: Threading Building Blocks\n")
+ f.write("Description: Intel's parallelism library for C++\n")
+ f.write("Version: {0}\n".format(self.spec.version))
+ f.write("Cflags: -I${includedir}\n")
+ f.write("Libs: -L${libdir} -ltbb -latomic\n")