Compare commits

..
1320 changed files with 31467 additions and 11028 deletions
+2 -101
View File
@@ -2,100 +2,6 @@
The list of most significant changes made over time in
Intel(R) Threading Building Blocks (Intel(R) TBB).
Intel TBB 2017 Update 8
TBB_INTERFACE_VERSION == 9108
Changes (w.r.t. Intel TBB 2017 Update 7):
Bugs fixed:
- Fixed an assertion failure in debug tbbmalloc binaries when
TBBMALLOC_CLEAN_ALL_BUFFERS is used.
------------------------------------------------------------------------
Intel TBB 2017 Update 7
TBB_INTERFACE_VERSION == 9107
Changes (w.r.t. Intel TBB 2017 Update 6):
- In the huge pages mode, the memory allocator now is also able to use
transparent huge pages.
Preview Features:
- Added support for Intel TBB integration into CMake-aware
projects, with valuable guidance and feedback provided by Brad King
(Kitware).
Bugs fixed:
- Fixed scalable_allocation_command(TBBMALLOC_CLEAN_ALL_BUFFERS, 0)
to process memory left after exited threads.
------------------------------------------------------------------------
Intel TBB 2017 Update 6
TBB_INTERFACE_VERSION == 9106
Changes (w.r.t. Intel TBB 2017 Update 5):
- Added support for Android* NDK r14.
Preview Features:
- Added a blocking terminate extension to the task_scheduler_init class
that allows an object to wait for termination of worker threads.
Bugs fixed:
- Fixed compilation and testing issues with MinGW (GCC 6).
- Fixed compilation with /std:c++latest option of VS 2017
(https://github.com/01org/tbb/issues/13).
------------------------------------------------------------------------
Intel TBB 2017 Update 5
TBB_INTERFACE_VERSION == 9105
Changes (w.r.t. Intel TBB 2017 Update 4):
- Added support for Microsoft* Visual Studio* 2017.
- Added graph/matmult example to demonstrate support for compute offload
to Intel(R) Graphics Technology in the flow graph API.
- The "compiler" build option now allows to specify a full path to the
compiler.
Changes affecting backward compatibility:
- Constructors for many classes, including graph nodes, concurrent
containers, thread-local containers, etc., are declared explicit and
cannot be used for implicit conversions anymore.
Bugs fixed:
- Added a workaround for bug 16657 in the GNU C Library (glibc)
affecting the debug version of tbb::mutex.
- Fixed a crash in pool_identify() called for an object allocated in
another thread.
------------------------------------------------------------------------
Intel TBB 2017 Update 4
TBB_INTERFACE_VERSION == 9104
Changes (w.r.t. Intel TBB 2017 Update 3):
- Added support for C++11 move semantics in parallel_do.
- Added support for FreeBSD* 11.
Changes affecting backward compatibility:
- Minimal compiler versions required for support of C++11 move semantics
raised to GCC 4.5, VS 2012, and Intel(R) C++ Compiler 14.0.
Bugs fixed:
- The workaround for crashes in the library compiled with GCC 6
(-flifetime-dse=1) was extended to Windows*.
------------------------------------------------------------------------
Intel TBB 2017 Update 3
TBB_INTERFACE_VERSION == 9103
@@ -114,10 +20,6 @@ Bugs fixed:
- Fixed a possible deadlock caused by missed wakeup signals in
task_arena::execute().
Open-source contributions integrated:
- A build fix for Linux* s390x platform by Jerry J.
------------------------------------------------------------------------
Intel TBB 2017 Update 2
TBB_INTERFACE_VERSION == 9102
@@ -2363,8 +2265,7 @@ Packaging:
are provided separately on Intel(R) Premier.
------------------------------------------------------------------------
Intel, the Intel logo, Xeon, Intel Xeon Phi, and Cilk are registered
trademarks or trademarks of Intel Corporation or its subsidiaries in
the United States and other countries.
Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+7 -3
View File
@@ -1,5 +1,5 @@
# Intel(R) Threading Building Blocks 2017 Update 8
[![Stable release](https://img.shields.io/badge/version-2017_U8-green.svg)](https://github.com/01org/tbb/releases/tag/2017_U8)
# Intel(R) Threading Building Blocks 2017 Update 3
[![Stable release](https://img.shields.io/badge/version-2017_U3-green.svg)](https://github.com/01org/tbb/releases/tag/2017_U3)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take
@@ -7,6 +7,10 @@ full advantage of multicore performance, that are portable, composable and have
## Release Information
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
This release provides additional TBB examples for workshops, conferences etc.
examples/ppopp17 – examples for PPoPP 2017
examples/europar17 – examples for Euro-Par 2017
## Documentation
* Intel(R) TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
@@ -21,7 +25,7 @@ Please report issues and suggestions via
## How to Contribute
Please, read the instructions on the official [Intel(R) TBB open source site](https://www.threadingbuildingblocks.org/submit-contribution).
## Engineering team contacts
## Сontact engineering team
* [E-mail us.](mailto:inteltbbdevelopers@intel.com)
------------------------------------------------------------------------
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ CPLUS = clang++
CONLY = clang
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS += -lpthread -lrt
LINK_FLAGS = -Wl,-rpath-link=. -Wl,-rpath=. -rdynamic
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+5 -5
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -29,14 +29,14 @@ ifndef arch
endif
ifndef runtime
clang_version:=$(shell clang -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/")
gcc_version:=$(shell gcc -dumpversion)
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(clang_version)_kernel$(os_kernel_version)
export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
endif
native_compiler := clang
export compiler ?= clang
native_compiler := gcc
export compiler ?= gcc
debugger ?= gdb
CMD=$(SHELL) -c
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+7 -11
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -71,7 +71,6 @@ SCHEDULER_DIRECTLY_INCLUDED = test_task_leaks.$(TEST_EXT) \
# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
INCLUDES += $(INCLUDE_KEY). $(INCLUDE_TEST_HEADERS)
$(SCHEDULER_DIRECTLY_INCLUDED): CPLUS_FLAGS += $(DSE_KEY)
$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
$(SCHEDULER_DIRECTLY_INCLUDED): LIBS += $(LIBDL)
#tbb.lib must not be linked to scheduler white box tests in order to not violate ODR
@@ -101,15 +100,12 @@ $(TWICE_LINKED_TESTS): LINK_FILES+=$(@:.$(TEST_EXT)=_secondary.$(OBJ))
test_dynamic_link%.$(TEST_EXT): LINK_TBB.LIB =
test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
# Resolving issue with the number of sections that an object file can contain
ifneq (,$(BIGOBJ_KEY))
TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
test_join_node.$(TEST_EXT) \
test_atomic.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_join_node.$(TEST_EXT)
$(TEST_BIGOBJ): override CXXFLAGS += $(BIGOBJ_KEY)
TEST_BIG_OBJ = test_opencl_node.$(TEST_EXT) test_join_node.$(TEST_EXT) test_atomic.$(TEST_EXT)
ifeq (windows_windows,$(tbb_os)_$(target))
ifneq (gcc,$(compiler))
$(TEST_BIG_OBJ): override CXXFLAGS += /bigobj
endif
endif
# TODO: remove repetition of .$(TEST_EXT) in the list bellow
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -71,7 +71,7 @@ endif
CPLUS_FLAGS += --sysroot=$(SYSROOT)
LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
LIBS = -L$(CPLUS_LIB_PATH) -lc++_shared
ifneq (,$(findstring $(ndk_version),r12 r12b r13 r13b r14 r14b))
ifneq (,$(findstring $(ndk_version),r12 r12b r13 r13b))
LIBS += -lc++abi
ifeq (arm,$(arch))
LIBS += -lunwind
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+3 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,6 +30,8 @@ ifeq (64,$(findstring 64,$(arch)))
endif
ifdef ndk_version
ndk_version:= $(firstword $(subst /, ,$(ndk_version)))
ndk_version:= $(firstword $(subst \, ,$(ndk_version)))
$(warning "NDK version $(ndk_version)")
else
$(warning "NDK version not set in environment, using \'unknown\' instead.")
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+9 -9
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -45,7 +45,7 @@ endif
ifdef cpp0x
$(warning "Warning: deprecated cpp0x=$(cpp0x) is used, stdver must be used instead. Building in stdver=c++0x mode.")
export stdver?=c++0x
export stdver ?= c++0x
override cpp0x=
endif
@@ -54,13 +54,13 @@ ifneq (,$(stdver))
$(warning "Warning: unexpected stdver=$(stdver) is used.")
endif
CXX_STD_FLAGS=-std=$(stdver) -D_TBB_CPP0X
CXX_STD_FLAGS = -std=$(stdver) -D_TBB_CPP0X
endif
# The requested option is added unconditionally.
# If it is not supported, a compiler warning or error is expected.
# Note that CXX_STD_FLAGS can be changed in <os>.<compiler>.inc.
CXX_ONLY_FLAGS+=$(CXX_STD_FLAGS)
CXX_ONLY_FLAGS += $(CXX_STD_FLAGS)
ifeq (,$(wildcard $(tbb_root)/build/$(tbb_os).inc))
$(error "$(tbb_os)" is not supported. Add build/$(tbb_os).inc file with os-specific settings )
@@ -100,23 +100,23 @@ cross_cfg = $(if $(crosstest),$(call flip_cfg,$(1)),$(1))
# Setting default configuration to release
cfg?=release
compiler_name=$(notdir $(compiler))
ifdef BUILDING_PHASE
ifndef target
target:=$(tbb_os)
endif
# process host/target compiler-dependent build configuration
ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler_name).inc))
$(error "$(compiler_name)" is not supported on $(target). Add build/$(target).$(compiler_name).inc file with compiler-specific settings. )
ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler).inc))
$(error "$(compiler)" is not supported on $(target). Add build/$(target).$(compiler).inc file with compiler-specific settings. )
endif
include $(tbb_root)/build/$(target).$(compiler_name).inc
include $(tbb_root)/build/$(target).$(compiler).inc
endif
ifneq ($(BUILDING_PHASE),1)
# definitions for top-level Makefiles
origin_build_dir:=$(origin tbb_build_dir)
tbb_build_dir?=$(tbb_root)$(SLASH)build
export tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler_name)_$(runtime)$(CPF_SUFFIX)
export tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler)_$(runtime)$(CPF_SUFFIX)
work_dir=$(tbb_build_dir)$(SLASH)$(tbb_build_prefix)
endif # BUILDING_PHASE != 1
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+148 -155
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2005-2017 Intel Corporation
// Copyright (c) 2005-2016 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,173 +16,166 @@
//
//
function readAllFromFile(fname) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = null;
try {
file = fso.OpenTextFile(fname, 1, 0);
return (file.readAll());
} finally {
// Close the file in the finally section to guarantee that it will be closed in any case
// (if the exception is thrown or not).
file.Close();
}
}
function doWork() {
var WshShell = WScript.CreateObject("WScript.Shell");
var WshShell = WScript.CreateObject("WScript.Shell");
var tmpExec = WshShell.Run("cmd /c echo int main(){return 0;} >detect.c", 0, true);
var fso = new ActiveXObject("Scripting.FileSystemObject");
// The next block deals with GCC (MinGW)
if (WScript.Arguments.Count() > 1) {
var compilerPath = WScript.Arguments(1);
// The RegExp matches everything up to and including the last slash (it uses a greedy approach.)
var compilerName = compilerPath.replace(/^.*[\/\\]/, "");
if (compilerName.match(/gcc/i) != null) {
if (WScript.Arguments(0) == "/arch") {
// Get predefined macros
tmpExec = WshShell.Run("cmd /C " + compilerPath + " -dM -E detect.c > detect.map", 0, true);
var defs = readAllFromFile("detect.map");
//detect target architecture
var intel64 = /x86_64|amd64/mgi;
var ia32 = /i386/mgi;
if (defs.match(intel64)) {
WScript.Echo("intel64");
} else if (defs.match(ia32)) {
WScript.Echo("ia32");
} else {
WScript.Echo("unknown");
}
} else {
tmpExec = WshShell.Exec(compilerPath + " -dumpversion");
var gccVersion = tmpExec.StdOut.ReadLine();
if (WScript.Arguments(0) == "/runtime") {
WScript.Echo("mingw" + gccVersion);
}
else if (WScript.Arguments(0) == "/minversion") {
// Comparing strings, not numbers; will not work for two-digit versions
if (gccVersion >= WScript.Arguments(2)) {
WScript.Echo("ok");
} else {
WScript.Echo("fail");
}
}
}
return;
}
}
var tmpExec;
tmpExec = WshShell.Run("cmd /c echo int main(){return 0;} >detect.c", 0, true);
//Compile binary
tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
while (tmpExec.Status == 0) {
WScript.Sleep(100);
}
//compiler banner that includes version and target arch was printed to stderr
var clVersion = tmpExec.StdErr.ReadAll();
// The next block deals with GCC (MinGW)
if ( WScript.Arguments.Count() > 1 && WScript.Arguments(1) == "gcc" ) {
if ( WScript.Arguments(0) == "/arch" ) {
// Get predefined macros
tmpExec = WshShell.Run("cmd /C gcc -dM -E detect.c > detect.map", 0, true);
var file = fso.OpenTextFile("detect.map", 1, 0);
var defs = file.readAll();
file.Close();
if (WScript.Arguments(0) == "/arch") {
//detect target architecture
var intel64 = /AMD64|EM64T|x64/mgi;
var ia32 = /[80|\s]x86/mgi;
var arm = /ARM/mgi;
if (clVersion.match(intel64)) {
WScript.Echo("intel64");
} else if (clVersion.match(ia32)) {
WScript.Echo("ia32");
} else if (clVersion.match(arm)) {
WScript.Echo("armv7");
} else {
WScript.Echo("unknown");
}
return;
}
//detect target architecture
var intel64=/x86_64|amd64/mgi;
var ia32=/i386/mgi;
if ( defs.match(intel64) ) {
WScript.Echo( "intel64" );
} else if ( defs.match(ia32) ) {
WScript.Echo( "ia32" );
} else {
WScript.Echo( "unknown" );
}
} else {
tmpExec = WshShell.Exec("gcc -dumpversion");
var gcc_version = tmpExec.StdOut.ReadLine();
if ( WScript.Arguments(0) == "/runtime" ) {
WScript.Echo( "mingw"+gcc_version );
}
else if ( WScript.Arguments(0) == "/minversion" ) {
// Comparing strings, not numbers; will not work for two-digit versions
if ( gcc_version >= WScript.Arguments(2) ) {
WScript.Echo( "ok" );
} else {
WScript.Echo( "fail" );
}
}
}
return;
}
if (WScript.Arguments(0) == "/runtime") {
//read map-file
var mapContext = readAllFromFile("detect.map");
//detect runtime
var vc71 = /MSVCR71\.DLL/mgi;
var vc80 = /MSVCR80\.DLL/mgi;
var vc90 = /MSVCR90\.DLL/mgi;
var vc100 = /MSVCR100\.DLL/mgi;
var vc110 = /MSVCR110\.DLL/mgi;
var vc120 = /MSVCR120\.DLL/mgi;
var vc140 = /VCRUNTIME140\.DLL/mgi;
var psdk = /MSVCRT\.DLL/mgi;
if (mapContext.match(vc71)) {
WScript.Echo("vc7.1");
} else if (mapContext.match(vc80)) {
WScript.Echo("vc8");
} else if (mapContext.match(vc90)) {
WScript.Echo("vc9");
} else if (mapContext.match(vc100)) {
WScript.Echo("vc10");
} else if (mapContext.match(vc110)) {
WScript.Echo("vc11");
} else if (mapContext.match(vc120)) {
WScript.Echo("vc12");
} else if (mapContext.match(vc140)) {
WScript.Echo("vc14");
} else {
WScript.Echo("unknown");
}
return;
}
//Compile binary
tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
while ( tmpExec.Status == 0 ) {
WScript.Sleep(100);
}
//compiler banner that includes version and target arch was printed to stderr
var clVersion = tmpExec.StdErr.ReadAll();
if (WScript.Arguments(0) == "/minversion") {
var compilerVersion;
if (WScript.Arguments(1) == "cl") {
compilerVersion = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
// compilerVersion is in xx.xx.xxxxx.xx format, i.e. a string.
// It will compare well with major.minor versions where major has two digits,
// which is sufficient as the versions of interest start from 13 (for VC7).
} else if (WScript.Arguments(1) == "icl") {
// Get predefined ICL macros
tmpExec = WshShell.Run("cmd /C icl /QdM /E detect.c > detect.map", 0, true);
var defs = readAllFromFile("detect.map");
// In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
compilerVersion = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1] / 100;
// compiler version is a number; it compares well with another major.minor
// version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
}
if (compilerVersion >= WScript.Arguments(2)) {
WScript.Echo("ok");
} else {
WScript.Echo("fail");
}
return;
}
if ( WScript.Arguments(0) == "/arch" ) {
//detect target architecture
var intel64=/AMD64|EM64T|x64/mgi;
var ia32=/[80|\s]x86/mgi;
var arm=/ARM/mgi;
if ( clVersion.match(intel64) ) {
WScript.Echo( "intel64" );
} else if ( clVersion.match(ia32) ) {
WScript.Echo( "ia32" );
} else if ( clVersion.match(arm) ) {
WScript.Echo( "armv7" );
} else {
WScript.Echo( "unknown" );
}
return;
}
if ( WScript.Arguments(0) == "/runtime" ) {
//read map-file
var map = fso.OpenTextFile("detect.map", 1, 0);
var mapContext = map.readAll();
map.Close();
//detect runtime
var vc71=/MSVCR71\.DLL/mgi;
var vc80=/MSVCR80\.DLL/mgi;
var vc90=/MSVCR90\.DLL/mgi;
var vc100=/MSVCR100\.DLL/mgi;
var vc110=/MSVCR110\.DLL/mgi;
var vc120=/MSVCR120\.DLL/mgi;
var vc140=/VCRUNTIME140\.DLL/mgi;
var psdk=/MSVCRT\.DLL/mgi;
if ( mapContext.match(vc71) ) {
WScript.Echo( "vc7.1" );
} else if ( mapContext.match(vc80) ) {
WScript.Echo( "vc8" );
} else if ( mapContext.match(vc90) ) {
WScript.Echo( "vc9" );
} else if ( mapContext.match(vc100) ) {
WScript.Echo( "vc10" );
} else if ( mapContext.match(vc110) ) {
WScript.Echo( "vc11" );
} else if ( mapContext.match(vc120) ) {
WScript.Echo( "vc12" );
} else if ( mapContext.match(vc140) ) {
WScript.Echo( "vc14" );
} else {
WScript.Echo( "unknown" );
}
return;
}
if ( WScript.Arguments(0) == "/minversion" ) {
var compiler_version;
if ( WScript.Arguments(1) == "cl" ) {
compiler_version = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
// compiler_version is in xx.xx.xxxxx.xx format, i.e. a string.
// It will compare well with major.minor versions where major has two digits,
// which is sufficient as the versions of interest start from 13 (for VC7).
} else if ( WScript.Arguments(1) == "icl" ) {
// Get predefined ICL macros
tmpExec = WshShell.Run("cmd /C icl /QdM /E detect.c > detect.map", 0, true);
var file = fso.OpenTextFile("detect.map", 1, 0);
var defs = file.readAll();
file.Close();
// In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
compiler_version = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1]/100;
// compiler version is a number; it compares well with another major.minor
// version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
}
if ( compiler_version >= WScript.Arguments(2) ) {
WScript.Echo( "ok" );
} else {
WScript.Echo( "fail" );
}
return;
}
}
function doClean() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
// delete intermediate files
if (fso.FileExists("detect.c"))
fso.DeleteFile("detect.c", false);
if (fso.FileExists("detect.obj"))
fso.DeleteFile("detect.obj", false);
if (fso.FileExists("detect.map"))
fso.DeleteFile("detect.map", false);
if (fso.FileExists("detect.exe"))
fso.DeleteFile("detect.exe", false);
if (fso.FileExists("detect.exe.manifest"))
fso.DeleteFile("detect.exe.manifest", false);
var fso = new ActiveXObject("Scripting.FileSystemObject");
// delete intermediate files
if ( fso.FileExists("detect.c") )
fso.DeleteFile ("detect.c", false);
if ( fso.FileExists("detect.obj") )
fso.DeleteFile ("detect.obj", false);
if ( fso.FileExists("detect.map") )
fso.DeleteFile ("detect.map", false);
if ( fso.FileExists("detect.exe") )
fso.DeleteFile ("detect.exe", false);
if ( fso.FileExists("detect.exe.manifest") )
fso.DeleteFile ("detect.exe.manifest", false);
}
if (WScript.Arguments.Count() > 0) {
try {
doWork();
} catch (error) {
WScript.Echo("unknown");
}
doClean();
if ( WScript.Arguments.Count() > 0 ) {
try {
doWork();
} catch( error ) {
WScript.Echo( "unknown" );
}
doClean();
} else {
WScript.Echo("Supported options:\n"
+ "\t/arch [compiler]\n"
+ "\t/runtime [compiler]\n"
+ "\t/minversion compiler version");
WScript.Echo( "Supported options:\n"
+ "\t/arch [compiler]\n"
+ "\t/runtime [compiler]\n"
+ "\t/minversion compiler version" );
}
+1 -1
View File
@@ -1,6 +1,6 @@
@echo off
REM
REM Copyright (c) 2005-2017 Intel Corporation
REM Copyright (c) 2005-2016 Intel Corporation
REM
REM Licensed under the Apache License, Version 2.0 (the "License");
REM you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+7 -7
View File
@@ -28,7 +28,7 @@ The files here are not intended to be used directly. See below for usage.
<DT>&lt;os&gt;.&lt;compiler&gt;.inc
<DD>Compiler-specific Makefile for a particular &lt;os&gt; / &lt;compiler&gt; combination.
<DT>*.sh
<DD>Infrastructure utilities for Linux* OS, macOS*, and UNIX*-related operating systems.
<DD>Infrastructure utilities for Linux* OS, OS X*, and UNIX*-related operating systems.
<DT>*.js, *.bat
<DD>Infrastructure utilities for Windows* OS.
</DL>
@@ -43,7 +43,7 @@ To port Intel TBB to a new platform, operating system or architecture, see the <
<LI>C++ compiler for the platform, operating system and architecture of interest.
Either the native compiler for your system, or, optionally, the appropriate Intel&reg; C++ compiler, may be used.
<LI>GNU make utility. On Windows OS, if a UNIX* emulator is used to run GNU make,
it should be able to run Windows OS utilities and commands. On Linux OS, macOS, etc.,
it should be able to run Windows OS utilities and commands. On Linux OS, OS X, etc.,
shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
In the following examples, replace <TT>make</TT> with the correct GNU make command for
your system (for example, <TT>gmake</TT>). GNU make version 3.80 and more recent are supported.
@@ -53,7 +53,7 @@ To port Intel TBB to a new platform, operating system or architecture, see the <
Intel TBB libraries can be built by performing the following steps.
On systems that support only one ABI (e.g., 32-bit), these steps build the libraries for that ABI.
On systems that support both 64-bit and 32-bit libraries, these steps build the 64-bit libraries
(Linux OS, macOS, and related systems) or whichever ABI is selected in the development environment (Windows OS).
(Linux OS, OS X, and related systems) or whichever ABI is selected in the development environment (Windows OS).
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
@@ -63,7 +63,7 @@ On systems that support both 64-bit and 32-bit libraries, these steps build the
</OL>
<P>
To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, macOS,
To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, OS X,
or related systems that support both 64-bit and 32-bit libraries), perform the following steps:
</P>
<OL>
@@ -88,7 +88,7 @@ See also the list of other targets below.
By default, the libraries will be built in sub-directories within the build/ directory.
The sub-directories are named according to the operating system, architecture, compiler and software environment used
(the sub-directory names also distinguish release vs. debug libraries). On Linux OS, the software environment comprises
the GCC, libc and kernel version used. On macOS, the software environment comprises the GCC and OS version used.
the GCC, libc and kernel version used. On OS X, the software environment comprises the GCC and OS version used.
On Windows OS, the software environment comprises the Microsoft* Visual Studio* version used.
See below for how to change the default build directory.
</P>
@@ -124,7 +124,7 @@ To perform different build and/or test operations, use the following steps.
<DT><TT>make compiler=<B>{</B>icl, icc, gcc, clang<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use specified compilers instead of default, native compilers
<ol>
<li><tt><b> {</b>icl, icc<b>}</b> </tt> - to use Intel&reg; compilers (<tt>icl</tt> on Windows OS, <tt>icc</tt> on Linux OS or macOS). </li>
<li><tt><b> {</b>icl, icc<b>}</b> </tt> - to use Intel&reg; compilers (<tt>icl</tt> on Windows OS, <tt>icc</tt> on Linux OS or OS X). </li>
<li><tt>gcc</tt> - to use g++ (e.g. MinGW on Windows OS)</li>
<li><tt>clang</tt> - to use Clang compiler</li>
</ol>
@@ -233,7 +233,7 @@ See the Makefile infrastructure files for examples.
<HR>
<A HREF="../index.html">Up to parent directory</A>
<P></P>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<P></P>
Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
<p></p>
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -81,7 +81,7 @@ endif
ifneq (,$(codecov))
# no tool support for code coverage, need profile data generation
ITT_NOTIFY = -prof-gen=srcpos
ITT_NOTIFY = -prof-genx
endif
#------------------------------------------------------------------------------
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -99,7 +99,7 @@ SONAME_SUFFIX =$(shell grep TBB_COMPATIBLE_INTERFACE_VERSION $(tbb_root)/include
ifeq ($(arch),ia64)
def_prefix = lin64ipf
endif
ifneq (,$(findstring $(arch),sparc s390x))
ifeq ($(arch),sparc s390x)
def_prefix = lin64
endif
ifeq ($(arch),armv7)
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -61,7 +61,7 @@ endif
CPLUS_FLAGS += -DUSE_PTHREAD
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
CPLUS_FLAGS += -prof-genx
endif
# ICC 14.0 and higher support usage of libc++, clang standard library
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -41,7 +41,7 @@ else
endif
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
CPLUS_FLAGS += -prof-genx
endif
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
@echo off
REM
REM Copyright (c) 2005-2017 Intel Corporation
REM Copyright (c) 2005-2016 Intel Corporation
REM
REM Licensed under the Apache License, Version 2.0 (the "License");
REM you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright (c) 2005-2017 Intel Corporation
// Copyright (c) 2005-2016 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
+3 -3
View File
@@ -20,10 +20,10 @@ This directory contains the Visual Studio* 2012 solution to build Intel&reg; Thr
<HR>
<A HREF="../index.html">Up to parent directory</A>
<P></P>
Copyright &copy; 2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2016 Intel Corporation. All Rights Reserved.
<P></P>
Intel and the Intel logo are trademarks of Intel Corporation
or its subsidiaries in the U.S. and/or other countries.
Intel is a registered trademark or trademark of Intel Corporation
or its subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
+4 -5
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -33,13 +33,13 @@ ifneq (,$(stdver))
endif
ifeq ($(arch), ia32)
LIB_LINK_FLAGS += /SAFESEH
LIB_LINK_FLAGS += /SAFESEH
endif
ifeq ($(runtime), vc_mt)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
else
MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
endif
EH_FLAGS = /EHsc /GR
@@ -71,7 +71,6 @@ DEFINE_KEY = /D
OUTPUT_KEY = /Fe
OUTPUTOBJ_KEY = /Fo
WARNING_AS_ERROR_KEY = /WX
BIGOBJ_KEY = /bigobj
ifeq ($(runtime),vc7.1)
WARNING_KEY = /W3
+1 -9
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -65,7 +65,6 @@ DYLIB_KEY = -shared
LIBDL =
EXPORT_KEY = -Wl,--version-script,
LIBS = -lpsapi
BIGOBJ_KEY = -Wa,-mbig-obj
#------------------------------------------------------------------------------
# End of compiler-specific variables
@@ -81,13 +80,6 @@ ifeq (ok,$(call detect_js,/minversion gcc 4.8))
RTM_KEY = -mrtm
endif
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
ifeq (ok,$(call detect_js,/minversion gcc 6.0))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
CPLUS_FLAGS = -g -O2
endif
+1 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -81,7 +81,6 @@ DYLIB_KEY = /DLL
EXPORT_KEY = /DEF:
NODEFAULTLIB_KEY = /Zl
NOINTRINSIC_KEY = /Oi-
BIGOBJ_KEY = /bigobj
ifneq (,$(codecov))
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2005-2017 Intel Corporation
# Copyright (c) 2005-2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
-285
View File
@@ -1,285 +0,0 @@
.. contents::
Introduction
------------
Many developers use CMake to manage their development projects, so the Intel(R) Threading Building Blocks (Intel(R) TBB)
team created the set of CMake modules to simplify integration of the Intel TBB library into a CMake project.
The modules are available starting from Intel TBB 2017 U7 in `<tbb_root>/cmake <https://github.com/01org/tbb/tree/tbb_2017/cmake>`_.
About Intel TBB
^^^^^^^^^^^^^^^
Intel TBB is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers. It is designed to promote scalable data parallel programming. Additionally, it fully supports nested parallelism, so you can build larger parallel components from smaller parallel components. To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
Many of the library interfaces employ generic programming, in which interfaces are defined by requirements on types and not specific types. The C++ Standard Template Library (STL) is an example of generic programming. Generic programming enables Intel TBB to be flexible yet efficient. The generic interfaces enable you to customize components to your specific needs.
The net result is that Intel TBB enables you to specify parallelism far more conveniently than using raw threads, and at the same time can improve performance.
References
^^^^^^^^^^
* `Official Intel TBB open source site <https://www.threadingbuildingblocks.org/>`_
* `Official GitHub repository <https://github.com/01org/tbb>`_
Engineering team contacts
^^^^^^^^^^^^^^^^^^^^^^^^^
The Intel TBB team is very interested in convenient integration of the Intel TBB library into customer projects. These CMake modules were created to provide such a possibility for CMake projects using a simple but powerful interface. We hope you will try these modules and we are looking forward to receiving your feedback!
E-mail us: `inteltbbdevelopers@intel.com <mailto:inteltbbdevelopers@intel.com>`_.
Visit our `forum <https://software.intel.com/en-us/forums/intel-threading-building-blocks/>`_.
Release Notes
-------------
* Minimum supported CMake version: ``3.0.0``.
* Intel TBB versioning via `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ has restricted functionality: compatibility of update numbers (as well as interface versions) is not checked. Supported versioning: ``find_package(TBB <major>.<minor> ...)``. Intel TBB interface version can be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
Use cases of Intel TBB integration into CMake-aware projects
------------------------------------------------------------
There are two types of Intel TBB packages:
* Binary packages with pre-built binaries for Windows* OS, Linux* OS and macOS*. They are available on the releases page of the Github repository: https://github.com/01org/tbb/releases. The main purpose of the binary package integration is the ability to build Intel TBB header files and binaries into your CMake-aware project.
* A source package is also available to download from the release page via the "Source code" link. In addition, it can be cloned from the repository by ``git clone https://github.com/01org/tbb.git``. The main purpose of the source package integration is to allow you to do a custom build of the Intel TBB library from the source files and then build that into your CMake-aware project.
There are four types of CMake modules that can be used to integrate Intel TBB: `TBBConfig`, `TBBGet`, `TBBMakeConfig` and `TBBBuild`. See `Technical documentation for CMake modules`_ section for additional details.
Binary package integration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following use case is valid for packages starting from Intel TBB 2017 U7:
* Download package manually and make integration.
Pre-condition: Location of TBBConfig.cmake is available via ``TBB_DIR`` or ``CMAKE_PREFIX_PATH`` contains path to Intel TBB root.
CMake code for integration:
.. code:: cmake
find_package(TBB <options>)
The following use case is valid for all Intel TBB 2017 packages.
* Download package using TBBGet_ and make integration.
Pre-condition: Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBGet.cmake)
tbb_get(TBB_ROOT tbb_root CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
Source package integration
^^^^^^^^^^^^^^^^^^^^^^^^^^
* Build Intel TBB from existing source files using TBBBuild_ and make integration.
Pre-condition: Intel TBB source code is available via <tbb_root> and Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBBuild.cmake)
tbb_build(TBB_ROOT <tbb_root> CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
* Download Intel TBB source files using TBBGet_, build it using TBBBuild_ and make integration.
Pre-condition: Intel TBB CMake modules are available via <path-to-tbb-cmake-modules>.
CMake code for integration:
.. code:: cmake
include(<path-to-tbb-cmake-modules>/TBBGet.cmake)
include(<path-to-tbb-cmake-modules>/TBBBuild.cmake)
tbb_get(TBB_ROOT tbb_root SOURCE_CODE)
tbb_build(TBB_ROOT ${tbb_root} CONFIG_DIR TBB_DIR)
find_package(TBB <options>)
Tutorials: Intel TBB integration using CMake
--------------------------------------------
Binary Intel TBB integration to the sub_string_finder sample (Windows* OS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this example, we will integrate binary Intel TBB package into the sub_string_finder sample on Windows* OS (Microsoft* Visual Studio).
This example is also applicable for other platforms with slight changes.
Place holders <version> and <date> should be replaced with the actual values for the Intel TBB package being used. The example is written for `CMake 3.7.1`.
Precondition:
* `Microsoft* Visual Studio 11` or higher.
* `CMake 3.0.0` or higher.
#. Download the latest binary package for Windows from `this page <https://github.com/01org/tbb/releases/latest>`_ and unpack it to the directory ``C:\demo_tbb_cmake``.
#. In the directory ``C:\demo_tbb_cmake\tbb<version>_<date>oss\examples\GettingStarted\sub_string_finder`` create ``CMakeLists.txt`` file with the following content:
.. code:: cmake
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(sub_string_finder CXX)
add_executable(sub_string_finder sub_string_finder.cpp)
# find_package will search for available TBBConfig using variables CMAKE_PREFIX_PATH and TBB_DIR.
find_package(TBB REQUIRED tbb)
# Link Intel TBB imported targets to the executable;
# "TBB::tbb" can be used instead of "${TBB_IMPORTED_TARGETS}".
target_link_libraries(sub_string_finder ${TBB_IMPORTED_TARGETS})
#. Run CMake GUI and:
* Fill the following fields (you can use the buttons ``Browse Source...`` and ``Browse Build...`` accordingly)
* Where is the source code: ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder``
* Where to build the binaries: ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder/build``
* Add new cache entry using button ``Add Entry`` to let CMake know where to search for TBBConfig:
* Name: ``CMAKE_PREFIX_PATH``
* Type: ``PATH``
* Value: ``C:/demo_tbb_cmake/tbb<version>_<date>oss``
* Push the button ``Generate`` and choose a proper generator for your Microsoft* Visual Studio version.
#. Now you can open the generated solution ``C:/demo_tbb_cmake/tbb<version>_<date>oss/examples/GettingStarted/sub_string_finder/build/sub_string_finder.sln`` in your Microsoft* Visual Studio and build it.
Source code integration of Intel TBB to the sub_string_finder sample (Linux* OS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this example, we will build Intel TBB from source code with enabled Community Preview Features and link the sub_string_finder sample with the built library.
This example is also applicable for other platforms with slight changes.
Precondition:
* `CMake 3.0.0` or higher.
* `Git` (to clone the Intel TBB repository from GitHub)
#. Create the directory ``~/demo_tbb_cmake``, go to the created directory and clone the Intel TBB repository there:
``mkdir ~/demo_tbb_cmake ; cd ~/demo_tbb_cmake ; git clone https://github.com/01org/tbb.git``
#. In the directory ``~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder`` create ``CMakeLists.txt`` file with following content:
.. code:: cmake
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(sub_string_finder CXX)
add_executable(sub_string_finder sub_string_finder.cpp)
include(${TBB_ROOT}/cmake/TBBBuild.cmake)
# Build Intel TBB with enabled Community Preview Features (CPF).
tbb_build(TBB_ROOT ${TBB_ROOT} CONFIG_DIR TBB_DIR MAKE_ARGS tbb_cpf=1)
find_package(TBB REQUIRED tbb_preview)
# Link Intel TBB imported targets to the executable;
# "TBB::tbb_preview" can be used instead of "${TBB_IMPORTED_TARGETS}".
target_link_libraries(sub_string_finder ${TBB_IMPORTED_TARGETS})
#. Create a build directory for the sub_string_finder sample to perform build out of source, go to the created directory
``mkdir ~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder/build ; cd ~/demo_tbb_cmake/tbb/examples/GettingStarted/sub_string_finder/build``
#. Run CMake to prepare Makefile for the sub_string_finder sample and provide Intel TBB location (root) where to perform build:
``cmake -DTBB_ROOT=${HOME}/demo_tbb_cmake/tbb ..``
#. Make an executable and run it:
``make ; ./sub_string_finder``
Technical documentation for CMake modules
-----------------------------------------
TBBConfig
^^^^^^^^^
Configuration module for ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library.
How to use this module in your CMake project:
#. Add location of Intel TBB (root) to `CMAKE_PREFIX_PATH <https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html>`_
or specify location of TBBConfig.cmake in ``TBB_DIR``.
#. Use `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_ to configure Intel TBB.
#. Use provided variables and/or imported targets (described below) to work with Intel TBB.
Intel TBB components can be passed to `find_package <https://cmake.org/cmake/help/latest/command/find_package.html>`_
after keyword ``COMPONENTS`` or ``REQUIRED``.
Use basic names of components (``tbb``, ``tbbmalloc``, ``tbb_preview``, etc.).
If components are not specified then default are used: ``tbb``, ``tbbmalloc`` and ``tbbmalloc_proxy``.
If ``tbbmalloc_proxy`` is requested, ``tbbmalloc`` component will also be added and set as dependency for ``tbbmalloc_proxy``.
TBBConfig creates `imported targets <https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#imported-targets>`_ as
shared libraries using the following format: ``TBB::<component>`` (for example, ``TBB::tbb``, ``TBB::tbbmalloc``).
Variables set during Intel TBB configuration:
========================= ================================================
Variable Description
========================= ================================================
``TBB_FOUND`` Intel TBB library is found
``TBB_<component>_FOUND`` specific Intel TBB component is found
``TBB_IMPORTED_TARGETS`` all created Intel TBB imported targets
``TBB_VERSION`` Intel TBB version (format: ``<major>.<minor>``)
``TBB_INTERFACE_VERSION`` Intel TBB interface version
========================= ================================================
TBBGet
^^^^^^
Module for getting ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library from `GitHub <https://github.com/01org/tbb>`_.
Provides the following functions:
``tbb_get(TBB_ROOT <variable> [RELEASE_TAG <release_tag>|LATEST] [SAVE_TO <path>] [SYSTEM_NAME Linux|Windows|Darwin] [CONFIG_DIR <variable> | SOURCE_CODE])``
downloads Intel TBB from GitHub and creates TBBConfig for the downloaded binary package if there is no TBBConfig.
==================================== ====================================
Parameter Description
==================================== ====================================
``TBB_ROOT <variable>`` a variable to save Intel TBB root in, ``<variable>-NOTFOUND`` will be provided in case ``tbb_get`` is unsuccessful
``RELEASE_TAG <release_tag>|LATEST`` Intel TBB release tag to be downloaded (for example, ``2017_U6``), ``LATEST`` is used by default
``SAVE_TO <path>`` path to location at which to unpack downloaded Intel TBB, ``${CMAKE_CURRENT_BINARY_DIR}/tbb_downloaded`` is used by default
``SYSTEM_NAME Linux|Windows|Darwin`` operating system name to download a binary package for,
value of `CMAKE_SYSTEM_NAME <https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html>`_ is used by default
``CONFIG_DIR <variable>`` a variable to save location of TBBConfig.cmake and TBBConfigVersion.cmake. Ignored if ``SOURCE_CODE`` specified
``SOURCE_CODE`` flag to get Intel TBB source code (instead of binary package)
==================================== ====================================
TBBMakeConfig
^^^^^^^^^^^^^
Module for making TBBConfig in ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` binary package.
This module is to be used for packages that do not have TBBConfig.
Provides the following functions:
``tbb_make_config(TBB_ROOT <path> CONFIG_DIR <variable> [SYSTEM_NAME Linux|Windows|Darwin])``
creates CMake configuration files (TBBConfig.cmake and TBBConfigVersion.cmake) for Intel TBB binary package.
==================================== ====================================
Parameter Description
==================================== ====================================
``TBB_ROOT <variable>`` path to Intel TBB root
``CONFIG_DIR <variable>`` a variable to store location of the created configuration files
``SYSTEM_NAME Linux|Windows|Darwin`` operating system name of the binary Intel TBB package,
value of `CMAKE_SYSTEM_NAME <https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html>`_ is used by default
==================================== ====================================
TBBBuild
^^^^^^^^
Module for building ``Intel(R) Threading Building Blocks (Intel(R) TBB)`` library from the source code.
Provides the following functions:
``tbb_build(TBB_ROOT <tbb_root> CONFIG_DIR <variable> [MAKE_ARGS <custom_make_arguments>])``
builds Intel TBB from source code using the ``Makefile``, creates and provides the location of the CMake configuration files (TBBConfig.cmake and TBBConfigVersion.cmake) .
===================================== ====================================
Parameter Description
===================================== ====================================
``TBB_ROOT <variable>`` path to Intel TBB root
``CONFIG_DIR <variable>`` a variable to store location of the created configuration files,
``<variable>-NOTFOUND`` will be provided in case ``tbb_build`` is unsuccessful
``MAKE_ARGS <custom_make_arguments>`` custom arguments to be passed to ``make`` tool.
The following arguments are always passed with automatically detected values to
``make`` tool if they are not redefined in ``<custom_make_arguments>``:
- ``compiler=<compiler>``
- ``tbb_build_dir=<tbb_build_dir>``
- ``tbb_build_prefix=<tbb_build_prefix>``
- ``-j<n>``
===================================== ====================================
------------
Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
``*`` Other names and brands may be claimed as the property of others.
-197
View File
@@ -1,197 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
#
# Usage:
# include(TBBBuild.cmake)
# tbb_build(ROOT <tbb_root> MAKE_ARGS <arg1> [... <argN>])
# find_package(TBB <options>)
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
##
# Builds Intel TBB.
#
# Parameters:
# TBB_ROOT <directory> - path to Intel TBB root directory (with sources);
# MAKE_ARGS <list> - user-defined arguments to be passed to make-tool;
# CONFIG_DIR <variable> - store location of the created TBBConfig if the build was ok, store <variable>-NOTFOUND otherwise.
#
function(tbb_build)
# NOTE: internal function are used to hide them from user.
##
# Provides arguments for make-command to build Intel TBB.
#
# Following arguments are provided automatically if they are not defined by user:
# compiler=<value>
# tbb_build_dir=<value>
# tbb_build_prefix=<value>
# -j<n>
#
# Parameters:
# USER_DEFINED_ARGS <list> - list of user-defined arguments;
# RESULT <variable> - resulting list of 'make' arguments.
#
function(tbb_get_make_args)
set(oneValueArgs RESULT)
set(multiValueArgs USER_DEFINED_ARGS)
cmake_parse_arguments(tbb_GMA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(result ${tbb_GMA_USER_DEFINED_ARGS})
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "compiler=")
# TODO: add other supported compilers.
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(compiler gcc)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(compiler icc)
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(compiler icl)
endif()
elseif (MSVC)
set(compiler cl)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(compiler clang)
endif()
set(result "compiler=${compiler}" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "tbb_build_dir=")
set(result "tbb_build_dir=${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "tbb_build_prefix=")
set(result "tbb_build_prefix=tbb_cmake_build_subdir" ${result})
endif()
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "(;|^) *\\-j[0-9]* *(;|$)")
include(ProcessorCount)
ProcessorCount(num_of_cores)
if (NOT num_of_cores EQUAL 0)
set(result "-j${num_of_cores}" ${result})
endif()
endif()
if (CMAKE_SYSTEM_NAME MATCHES "Android")
set(result target=android ${result})
endif()
set(${tbb_GMA_RESULT} ${result} PARENT_SCOPE)
endfunction()
##
# Provides release and debug directories basing on 'make' arguments.
#
# Following 'make' arguments are parsed: tbb_build_dir, tbb_build_prefix
#
# Parameters:
# MAKE_ARGS <list> - 'make' arguments (tbb_build_dir and tbb_build_prefix are required)
# RELEASE_DIR <variable> - store normalized (CMake) path to release directory
# DEBUG_DIR <variable> - store normalized (CMake) path to debug directory
#
function(tbb_get_build_paths_from_make_args)
set(oneValueArgs RELEASE_DIR DEBUG_DIR)
set(multiValueArgs MAKE_ARGS)
cmake_parse_arguments(tbb_GBPFMA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
foreach(arg ${tbb_GBPFMA_MAKE_ARGS})
if (arg MATCHES "tbb_build_dir=")
string(REPLACE "tbb_build_dir=" "" tbb_build_dir "${arg}")
elseif (arg MATCHES "tbb_build_prefix=")
string(REPLACE "tbb_build_prefix=" "" tbb_build_prefix "${arg}")
endif()
endforeach()
set(tbb_release_dir "${tbb_build_dir}/${tbb_build_prefix}_release")
set(tbb_debug_dir "${tbb_build_dir}/${tbb_build_prefix}_debug")
file(TO_CMAKE_PATH "${tbb_release_dir}" tbb_release_dir)
file(TO_CMAKE_PATH "${tbb_debug_dir}" tbb_debug_dir)
set(${tbb_GBPFMA_RELEASE_DIR} ${tbb_release_dir} PARENT_SCOPE)
set(${tbb_GBPFMA_DEBUG_DIR} ${tbb_debug_dir} PARENT_SCOPE)
endfunction()
# -------------------- #
# Function entry point #
# -------------------- #
set(oneValueArgs TBB_ROOT CONFIG_DIR)
set(multiValueArgs MAKE_ARGS)
cmake_parse_arguments(tbb_build "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (NOT EXISTS "${tbb_build_TBB_ROOT}/Makefile" OR NOT EXISTS "${tbb_build_TBB_ROOT}/src")
message(STATUS "Intel TBB can not be built: Makefile or src directory was not found in ${tbb_build_TBB_ROOT}")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
set(make_tool_name make)
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(make_tool_name gmake)
elseif (CMAKE_SYSTEM_NAME MATCHES "Android")
set(make_tool_name ndk-build)
endif()
find_program(TBB_MAKE_TOOL ${make_tool_name} DOC "Make-tool to build Intel TBB.")
mark_as_advanced(TBB_MAKE_TOOL)
if (NOT TBB_MAKE_TOOL)
message(STATUS "Intel TBB can not be built: required make-tool (${make_tool_name}) was not found")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
tbb_get_make_args(USER_DEFINED_ARGS ${tbb_build_MAKE_ARGS} RESULT tbb_make_args)
set(tbb_build_cmd ${TBB_MAKE_TOOL} ${tbb_make_args})
string(REPLACE ";" " " tbb_build_cmd_str "${tbb_build_cmd}")
message(STATUS "Building Intel TBB: ${tbb_build_cmd_str}")
execute_process(COMMAND ${tbb_build_cmd}
WORKING_DIRECTORY ${tbb_build_TBB_ROOT}
RESULT_VARIABLE tbb_build_result
ERROR_VARIABLE tbb_build_error_output
OUTPUT_QUIET)
if (NOT tbb_build_result EQUAL 0)
message(STATUS "Building is unsuccessful (${tbb_build_result}): ${tbb_build_error_output}")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()
tbb_get_build_paths_from_make_args(MAKE_ARGS ${tbb_make_args}
RELEASE_DIR tbb_release_dir
DEBUG_DIR tbb_debug_dir)
include(${_tbb_cmake_module_path}/TBBMakeConfig.cmake)
tbb_make_config(TBB_ROOT ${tbb_build_TBB_ROOT}
SYSTEM_NAME ${CMAKE_SYSTEM_NAME}
CONFIG_DIR tbb_config_dir
CONFIG_FOR_SOURCE
TBB_RELEASE_DIR ${tbb_release_dir}
TBB_DEBUG_DIR ${tbb_debug_dir})
set(${tbb_build_CONFIG_DIR} ${tbb_config_dir} PARENT_SCOPE)
endfunction()
-298
View File
@@ -1,298 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
##
# Downloads file.
#
# Parameters:
# URL <url> - URL to download data from;
# SAVE_AS <filename> - filename there to save downloaded data;
# INFO <string> - text description of content to be downloaded;
# will be printed as message in format is "Downloading <INFO>: <URL>;
# FORCE - option to delete local file from SAVE_AS if it exists;
#
function(_tbb_download_file)
set(options FORCE)
set(oneValueArgs URL RELEASE SAVE_AS INFO)
cmake_parse_arguments(tbb_df "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (tbb_df_FORCE AND EXISTS "${tbb_df_SAVE_AS}")
file(REMOVE ${tbb_df_SAVE_AS})
endif()
if (NOT EXISTS "${tbb_df_SAVE_AS}")
set(_show_progress)
if (TBB_DOWNLOADING_PROGRESS)
set(_show_progress SHOW_PROGRESS)
endif()
message(STATUS "Downloading ${tbb_df_INFO}: ${tbb_df_URL}")
file(DOWNLOAD ${tbb_df_URL} ${tbb_df_SAVE_AS} ${_show_progress} STATUS download_status)
list(GET download_status 0 download_status_num)
if (NOT download_status_num EQUAL 0)
message(STATUS "Unsuccessful downloading: ${download_status}")
file(REMOVE ${tbb_df_SAVE_AS})
return()
endif()
else()
message(STATUS "Needed file was found locally ${tbb_df_SAVE_AS}. Remove it if you still want to download a new one")
endif()
endfunction()
##
# Checks if specified Intel TBB release is available on GitHub.
#
# tbb_check_git_release(<release> <result>)
# Parameters:
# <release_tag> - release to be checked;
# <result> - store result (TRUE/FALSE).
#
function(_tbb_check_git_release_tag _tbb_release_tag _tbb_release_tag_avail)
if (_tbb_release_tag STREQUAL LATEST)
set(${_tbb_release_tag_avail} TRUE PARENT_SCOPE)
return()
endif()
set(tbb_releases_file "${CMAKE_CURRENT_BINARY_DIR}/tbb_releases.json")
_tbb_download_file(URL "${tbb_github_api}/releases"
SAVE_AS ${tbb_releases_file}
INFO "information from GitHub about Intel TBB releases"
FORCE)
if (NOT EXISTS "${tbb_releases_file}")
set(${_tbb_release_tag_avail} FALSE PARENT_SCOPE)
return()
endif()
file(READ ${tbb_releases_file} tbb_releases)
string(REPLACE "\"" "" tbb_releases ${tbb_releases})
string(REGEX MATCHALL "tag_name: *([A-Za-z0-9_\\.]+)" tbb_releases ${tbb_releases})
set(_release_available FALSE)
foreach(tbb_rel ${tbb_releases})
string(REGEX REPLACE "tag_name: *" "" tbb_rel_cut ${tbb_rel})
list(REMOVE_ITEM tbb_releases ${tbb_rel})
list(APPEND tbb_releases ${tbb_rel_cut})
if (_tbb_release_tag STREQUAL tbb_rel_cut)
set(_release_available TRUE)
break()
endif()
endforeach()
if (NOT _release_available)
string(REPLACE ";" ", " tbb_releases_str "${tbb_releases}")
message(STATUS "Requested release tag ${_tbb_release_tag} is not available. Available Intel TBB release tags: ${tbb_releases_str}")
endif()
set(${_tbb_release_tag_avail} ${_release_available} PARENT_SCOPE)
endfunction()
##
# Compares two Intel TBB releases and provides result
# TRUE if the first release is less than the second, FALSE otherwise.
#
# tbb_is_release_less(<rel1> <rel2> <result>)
#
function(_tbb_is_release_less rel1 rel2 result)
# Convert release to numeric representation to compare it using "if" with VERSION_LESS.
string(REGEX REPLACE "[A-Za-z]" "" rel1 "${rel1}")
string(REPLACE "_" "." rel1 "${rel1}")
string(REGEX REPLACE "[A-Za-z]" "" rel2 "${rel2}")
string(REPLACE "_" "." rel2 "${rel2}")
if (${rel1} VERSION_LESS ${rel2})
set(${result} TRUE PARENT_SCOPE)
return()
endif()
set(${result} FALSE PARENT_SCOPE)
endfunction()
##
# Finds exact URL to download Intel TBB basing on provided parameters.
#
# Usage:
# _tbb_get_url(URL <var_to_save_url> RELEASE_TAG <release_tag|LATEST> OS <os> [SOURCE_CODE])
#
function(_tbb_get_url)
set(oneValueArgs URL RELEASE_TAG OS)
set(options SOURCE_CODE)
cmake_parse_arguments(tbb_get_url "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_github_api "https://api.github.com/repos/01org/tbb")
_tbb_check_git_release_tag(${tbb_get_url_RELEASE_TAG} tbb_release_available)
if (NOT tbb_release_available)
set(${tbb_download_FULL_PATH} ${tbb_download_FULL_PATH}-NOTFOUND PARENT_SCOPE)
return()
endif()
if (tbb_get_url_RELEASE_TAG STREQUAL LATEST)
set(tbb_rel_info_api_url "${tbb_github_api}/releases/latest")
else()
set(tbb_rel_info_api_url "${tbb_github_api}/releases/tags/${tbb_get_url_RELEASE_TAG}")
endif()
set(tbb_release_info_file "${CMAKE_CURRENT_BINARY_DIR}/tbb_${tbb_get_url_RELEASE_TAG}_info.json")
_tbb_download_file(URL ${tbb_rel_info_api_url}
SAVE_AS ${tbb_release_info_file}
INFO "information from GitHub about packages for Intel TBB ${tbb_get_url_RELEASE_TAG}"
FORCE)
if (NOT EXISTS "${tbb_release_info_file}")
set(${tbb_get_url_URL} ${tbb_get_url_URL}-NOTFOUND PARENT_SCOPE)
return()
endif()
file(STRINGS ${tbb_release_info_file} tbb_release_info)
if (tbb_get_url_SOURCE_CODE)
# Find name of the latest release to get link to source archive.
if (tbb_get_url_RELEASE_TAG STREQUAL LATEST)
string(REPLACE "\"" "" tbb_release_info ${tbb_release_info})
string(REGEX REPLACE ".*tag_name: *([A-Za-z0-9_\\.]+).*" "\\1" tbb_get_url_RELEASE_TAG "${tbb_release_info}")
endif()
set(${tbb_get_url_URL} "https://github.com/01org/tbb/archive/${tbb_get_url_RELEASE_TAG}.tar.gz" PARENT_SCOPE)
else()
if (tbb_get_url_OS MATCHES "Linux")
set(tbb_lib_archive_suffix lin.tgz)
elseif (tbb_get_url_OS MATCHES "Windows")
set(tbb_lib_archive_suffix win.zip)
elseif (tbb_get_url_OS MATCHES "Darwin")
set(tbb_lib_archive_suffix mac.tgz)
# Since 2017_U4 release archive for Apple has suffix "mac.tgz" instead of "osx.tgz".
if (NOT tbb_get_url_RELEASE_TAG STREQUAL "LATEST")
_tbb_is_release_less(${tbb_get_url_RELEASE_TAG} 2017_U4 release_less)
if (release_less)
set(tbb_lib_archive_suffix osx.tgz)
endif()
endif()
elseif (tbb_get_url_OS MATCHES "Android")
set(tbb_lib_archive_suffix and.tgz)
else()
message(STATUS "Currently prebuilt Intel TBB is not available for your OS (${tbb_get_url_OS})")
set(${tbb_get_url_URL} ${tbb_get_url_URL}-NOTFOUND PARENT_SCOPE)
return()
endif()
string(REGEX REPLACE ".*(https.*oss_${tbb_lib_archive_suffix}).*" "\\1" tbb_bin_url "${tbb_release_info}")
set(${tbb_get_url_URL} ${tbb_bin_url} PARENT_SCOPE)
endif()
endfunction()
function(tbb_get)
set(oneValueArgs RELEASE_TAG SYSTEM_NAME SAVE_TO TBB_ROOT CONFIG_DIR)
set(options SOURCE_CODE)
cmake_parse_arguments(tbb_get "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_os ${CMAKE_SYSTEM_NAME})
if (tbb_get_SYSTEM_NAME)
set(tbb_os ${tbb_get_SYSTEM_NAME})
endif()
set(tbb_release_tag LATEST)
if (tbb_get_RELEASE_TAG)
set(tbb_release_tag ${tbb_get_RELEASE_TAG})
endif()
set(tbb_save_to ${CMAKE_CURRENT_BINARY_DIR}/tbb_downloaded)
if (tbb_get_SAVE_TO)
set(tbb_save_to ${tbb_get_SAVE_TO})
endif()
if (tbb_get_SOURCE_CODE)
_tbb_get_url(URL tbb_url RELEASE_TAG ${tbb_release_tag} OS ${tbb_os} SOURCE_CODE)
else()
_tbb_get_url(URL tbb_url RELEASE_TAG ${tbb_release_tag} OS ${tbb_os})
endif()
if (NOT tbb_url)
message(STATUS "URL to download Intel TBB has not been found")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(filename ${tbb_url} NAME)
set(local_file "${CMAKE_CURRENT_BINARY_DIR}/${filename}")
_tbb_download_file(URL ${tbb_url}
SAVE_AS ${local_file}
INFO "Intel TBB library")
if (NOT EXISTS "${local_file}")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(subdir_name ${filename} NAME_WE)
file(MAKE_DIRECTORY ${tbb_save_to}/${subdir_name})
if (NOT EXISTS "${tbb_save_to}/${subdir_name}")
message(STATUS "${tbb_save_to}/${subdir_name} can not be created")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
message(STATUS "Unpacking ${local_file} to ${tbb_save_to}/${subdir_name}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${local_file}
WORKING_DIRECTORY ${tbb_save_to}/${subdir_name}
RESULT_VARIABLE unpacking_result)
if (NOT unpacking_result EQUAL 0)
message(STATUS "Unsuccessful unpacking: ${unpacking_result}")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
file(GLOB_RECURSE tbb_h ${tbb_save_to}/${subdir_name}/*/include/tbb/tbb.h)
list(GET tbb_h 0 tbb_h)
if (NOT EXISTS "${tbb_h}")
message(STATUS "tbb/tbb.h has not been found in the downloaded package")
set(${tbb_get_TBB_ROOT} ${tbb_get_TBB_ROOT}-NOTFOUND PARENT_SCOPE)
return()
endif()
get_filename_component(tbb_root "${tbb_h}" PATH)
get_filename_component(tbb_root "${tbb_root}" PATH)
get_filename_component(tbb_root "${tbb_root}" PATH)
if (NOT tbb_get_SOURCE_CODE)
set(tbb_config_dir ${tbb_root}/cmake)
if (NOT EXISTS "${tbb_config_dir}")
tbb_make_config(TBB_ROOT ${tbb_root} CONFIG_DIR tbb_config_dir)
endif()
set(${tbb_get_CONFIG_DIR} ${tbb_config_dir} PARENT_SCOPE)
endif()
set(${tbb_get_TBB_ROOT} ${tbb_root} PARENT_SCOPE)
endfunction()
-162
View File
@@ -1,162 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
#
# Usage:
# include(TBBMakeConfig.cmake)
# tbb_make_config(TBB_ROOT <tbb_root> SYSTEM_NAME <system_name> CONFIG_DIR <var_to_store_config_dir> [CONFIG_FOR_SOURCE TBB_RELEASE_DIR <tbb_release_dir> TBB_DEBUG_DIR <tbb_debug_dir>])
#
include(CMakeParseArguments)
# Save the location of Intel TBB CMake modules here, as it will not be possible to do inside functions,
# see for details: https://cmake.org/cmake/help/latest/variable/CMAKE_CURRENT_LIST_DIR.html
set(_tbb_cmake_module_path ${CMAKE_CURRENT_LIST_DIR})
function(tbb_make_config)
set(oneValueArgs TBB_ROOT SYSTEM_NAME CONFIG_DIR TBB_RELEASE_DIR TBB_DEBUG_DIR)
set(options CONFIG_FOR_SOURCE)
cmake_parse_arguments(tbb_MK "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(tbb_system_name ${CMAKE_SYSTEM_NAME})
if (tbb_MK_SYSTEM_NAME)
set(tbb_system_name ${tbb_MK_SYSTEM_NAME})
endif()
file(MAKE_DIRECTORY ${tbb_MK_TBB_ROOT}/cmake)
set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc tbbmalloc_proxy)
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_RELEASE_DIR ${tbb_MK_TBB_RELEASE_DIR})
set(TBB_DEBUG_DIR ${tbb_MK_TBB_DEBUG_DIR})
endif()
if (tbb_system_name STREQUAL "Linux")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR "ia32")
set(TBB_X64_SUBDIR "intel64")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "so.2")
# Note: multiline variable
set(TBB_CHOOSE_COMPILER_SUBDIR "if (CMAKE_CXX_COMPILER_LOADED)
set(_tbb_compiler_id \${CMAKE_CXX_COMPILER_ID})
set(_tbb_compiler_ver \${CMAKE_CXX_COMPILER_VERSION})
elseif (CMAKE_C_COMPILER_LOADED)
set(_tbb_compiler_id \${CMAKE_C_COMPILER_ID})
set(_tbb_compiler_ver \${CMAKE_C_COMPILER_VERSION})
endif()
# For non-GCC compilers try to find version of system GCC to choose right compiler subdirectory.
if (NOT _tbb_compiler_id STREQUAL \"GNU\")
execute_process(COMMAND gcc --version OUTPUT_VARIABLE _tbb_gcc_ver_output ERROR_QUIET)
string(REGEX REPLACE \".*gcc.*([0-9]+\\\\.[0-9]+)\\\\.[0-9]+.*\" \"\\\\1\" _tbb_compiler_ver \"\${_tbb_gcc_ver_output}\")
if (NOT _tbb_compiler_ver)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only environment with available 'gcc'\")
endif()
unset(_tbb_gcc_ver_output)
endif()
set(_tbb_compiler_subdir gcc4.1)
foreach (_tbb_gcc_version 4.1 4.4 4.7)
if (NOT _tbb_compiler_ver VERSION_LESS \${_tbb_gcc_version})
set(_tbb_compiler_subdir gcc\${_tbb_gcc_version})
endif()
endforeach()
unset(_tbb_compiler_id)
unset(_tbb_compiler_ver)")
elseif (tbb_system_name STREQUAL "Windows")
set(TBB_SHARED_LIB_DIR "bin")
set(TBB_X32_SUBDIR "ia32")
set(TBB_X64_SUBDIR "intel64")
set(TBB_LIB_PREFIX "")
set(TBB_LIB_EXT "dll")
# Note: multiline variable
set(TBB_CHOOSE_COMPILER_SUBDIR "if (NOT MSVC)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC\")
endif()
# Detect the most relevant MSVC subdirectory
set(_tbb_msvc_1700_subdir vc11)
set(_tbb_msvc_1800_subdir vc12)
set(_tbb_msvc_1900_subdir vc14)
set(_tbb_msvc_ver \${MSVC_VERSION})
if (MSVC_VERSION VERSION_LESS 1700)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC version 1700 (vc11) or higher\")
elseif (MSVC_VERSION VERSION_GREATER 1900)
set(_tbb_msvc_ver 1900)
endif()
set(_tbb_compiler_subdir \${_tbb_msvc_\${_tbb_msvc_ver}_subdir})
unset(_tbb_msvc_1700_subdir)
unset(_tbb_msvc_1800_subdir)
unset(_tbb_msvc_1900_subdir)
if (WINDOWS_STORE)
set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_ui)
endif()")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_IMPLIB_RELEASE "\nIMPORTED_IMPLIB_RELEASE \"${tbb_MK_TBB_RELEASE_DIR}/\${_tbb_component}.lib\"")
set(TBB_IMPLIB_DEBUG "\nIMPORTED_IMPLIB_DEBUG \"${tbb_MK_TBB_DEBUG_DIR}/\${_tbb_component}_debug.lib\"")
else()
# Note: multiline variable
set(TBB_IMPLIB "
IMPORTED_IMPLIB_RELEASE \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}.lib\"
IMPORTED_IMPLIB_DEBUG \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}_debug.lib\"")
endif()
# Note: multiline variable
# tbb/internal/_tbb_windef.h (included via tbb/tbb_stddef.h) does implicit linkage of some .lib files, use a special define to avoid it
set(TBB_COMPILE_DEFINITIONS "
INTERFACE_COMPILE_DEFINITIONS \"__TBB_NO_IMPLICIT_LINKAGE=1\"")
elseif (tbb_system_name STREQUAL "Darwin")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR ".")
set(TBB_X64_SUBDIR ".")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "dylib")
set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir .)")
elseif (tbb_system_name STREQUAL "Android")
set(TBB_SHARED_LIB_DIR "lib")
set(TBB_X32_SUBDIR ".")
set(TBB_X64_SUBDIR "x86_64")
set(TBB_LIB_PREFIX "lib")
set(TBB_LIB_EXT "so")
set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir .)")
endif()
file(READ "${tbb_MK_TBB_ROOT}/include/tbb/tbb_stddef.h" _tbb_stddef)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(_tbb_config_template TBBConfigForSource.cmake.in)
else()
set(_tbb_config_template TBBConfig.cmake.in)
endif()
configure_file(${_tbb_cmake_module_path}/templates/${_tbb_config_template} ${tbb_MK_TBB_ROOT}/cmake/TBBConfig.cmake @ONLY)
configure_file(${_tbb_cmake_module_path}/templates/TBBConfigVersion.cmake.in ${tbb_MK_TBB_ROOT}/cmake/TBBConfigVersion.cmake @ONLY)
set(${tbb_MK_CONFIG_DIR} ${tbb_MK_TBB_ROOT}/cmake PARENT_SCOPE)
endfunction()
-45
View File
@@ -1,45 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
function(tbb_conf_gen_print_help)
message("Usage: cmake -DTBB_ROOT=<tbb_root> -DTBB_OS=Linux|Windows|Darwin [-DSAVE_TO=<path>] -P tbb_config_generator.cmake")
endfunction()
if (NOT DEFINED TBB_ROOT)
tbb_conf_gen_print_help()
message(FATAL_ERROR "Required parameter TBB_ROOT is not defined")
endif()
if (NOT EXISTS "${TBB_ROOT}")
tbb_conf_gen_print_help()
message(FATAL_ERROR "TBB_ROOT=${TBB_ROOT} does not exist")
endif()
if (NOT DEFINED TBB_OS)
tbb_conf_gen_print_help()
message(FATAL_ERROR "Required parameter TBB_OS is not defined")
endif()
if (DEFINED SAVE_TO)
set(tbb_conf_gen_save_to_param SAVE_TO ${SAVE_TO})
endif()
include(${CMAKE_CURRENT_LIST_DIR}/TBBMakeConfig.cmake)
tbb_make_config(TBB_ROOT ${TBB_ROOT} CONFIG_DIR tbb_config_dir SYSTEM_NAME ${TBB_OS} ${tbb_conf_gen_save_to_param})
message(STATUS "TBBConfig files were created in ${tbb_config_dir}")
-89
View File
@@ -1,89 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
# TBB_FOUND should not be set explicitly. It is defined automatically by CMake.
# Handling of TBB_VERSION is in TBBConfigVersion.cmake.
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(TBB_FIND_REQUIRED_${_tbb_component} 1)
endforeach()
endif()
# Add components with internal dependencies: tbbmalloc_proxy -> tbbmalloc
list(FIND TBB_FIND_COMPONENTS tbbmalloc_proxy _tbbmalloc_proxy_ix)
if (NOT _tbbmalloc_proxy_ix EQUAL -1)
list(FIND TBB_FIND_COMPONENTS tbbmalloc _tbbmalloc_ix)
if (_tbbmalloc_ix EQUAL -1)
list(APPEND TBB_FIND_COMPONENTS tbbmalloc)
set(TBB_FIND_REQUIRED_tbbmalloc ${TBB_FIND_REQUIRED_tbbmalloc_proxy})
endif()
endif()
set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
set(_tbb_x32_subdir @TBB_X32_SUBDIR@)
set(_tbb_x64_subdir @TBB_X64_SUBDIR@)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_tbb_arch_subdir ${_tbb_x64_subdir})
else()
set(_tbb_arch_subdir ${_tbb_x32_subdir})
endif()
@TBB_CHOOSE_COMPILER_SUBDIR@
get_filename_component(_tbb_lib_path "${_tbb_root}/@TBB_SHARED_LIB_DIR@/${_tbb_arch_subdir}/${_tbb_compiler_subdir}" ABSOLUTE)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(_tbb_release_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "${_tbb_lib_path}/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
if (EXISTS "${_tbb_release_lib}" AND EXISTS "${_tbb_debug_lib}")
add_library(TBB::${_tbb_component} SHARED IMPORTED)
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"
IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"
INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_IMPLIB@@TBB_COMPILE_DEFINITIONS@)
# Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
if (_tbb_component STREQUAL tbbmalloc_proxy)
set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
endif()
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(FATAL_ERROR "Missed required Intel TBB component: ${_tbb_component}")
endif()
endforeach()
unset(_tbb_x32_subdir)
unset(_tbb_x64_subdir)
unset(_tbb_arch_subdir)
unset(_tbb_compiler_subdir)
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
unset(_tbb_lib_path)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
@@ -1,82 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
# TBB_FOUND should not be set explicitly. It is defined automatically by CMake.
# Handling of TBB_VERSION is in TBBConfigVersion.cmake.
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(TBB_FIND_REQUIRED_${_tbb_component} 1)
endforeach()
endif()
# Add components with internal dependencies: tbbmalloc_proxy -> tbbmalloc
list(FIND TBB_FIND_COMPONENTS tbbmalloc_proxy _tbbmalloc_proxy_ix)
if (NOT _tbbmalloc_proxy_ix EQUAL -1)
list(FIND TBB_FIND_COMPONENTS tbbmalloc _tbbmalloc_ix)
if (_tbbmalloc_ix EQUAL -1)
list(APPEND TBB_FIND_COMPONENTS tbbmalloc)
set(TBB_FIND_REQUIRED_tbbmalloc ${TBB_FIND_REQUIRED_tbbmalloc_proxy})
endif()
endif()
set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
set(_tbb_release_lib "@TBB_RELEASE_DIR@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "@TBB_DEBUG_DIR@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
add_library(TBB::${_tbb_component} SHARED IMPORTED)
set_target_properties(TBB::${_tbb_component} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
if (EXISTS "${_tbb_release_lib}")
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"@TBB_IMPLIB_RELEASE@)
set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
endif()
if (EXISTS "${_tbb_debug_lib}")
set_target_properties(TBB::${_tbb_component} PROPERTIES
IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"@TBB_IMPLIB_DEBUG@)
set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
endif()
# Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
if (_tbb_component STREQUAL tbbmalloc_proxy)
set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
endif()
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(FATAL_ERROR "Missed required Intel TBB component: ${_tbb_component}")
endif()
endforeach()
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
unset(_tbb_lib_path)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
-28
View File
@@ -1,28 +0,0 @@
# Copyright (c) 2017 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
#
#
set(PACKAGE_VERSION @TBB_VERSION@)
if ("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
+6 -8
View File
@@ -30,7 +30,7 @@ Hardware - Recommended
Intel(R) Core(TM) processor family or higher
Intel(R) Xeon(R) processor family or higher
Intel(R) Xeon Phi(TM) processor family
macOS* Systems
OS X* Systems
Intel(R) Core(TM) processor family or higher
Android* Systems
Intel(R) Atom(TM) processor family
@@ -70,12 +70,11 @@ Software - Supported Operating Systems
Intel(R) Cluster Ready
Red Hat* Enterprise Linux* 6, 7
SuSE* Linux* Enterprise Server 11, 12
Ubuntu* 12.04 LTS, 14.04 LTS, 15.04, 16.04 LTS
Ubuntu* 12.04 LTS, 13.10, 14.04 LTS, 15.04, 16.04 LTS
WindRiver* Linux 7
Yocto 1.7, 1.9 (2.0), 2.1
Systems with OS X* or macOS* operating systems
Systems with OS X* operating systems
OS X* 10.10 and higher
macOS* 10.12 and higher
Systems with Android* operating systems
Android* 5.x, 6.x
@@ -120,11 +119,10 @@ Library Issues
with each other directly.
------------------------------------------------------------------------
(C) 2017 Intel Corporation
(C) 2016 Intel Corporation
Intel, the Intel logo, Intel Core, Intel Atom, Xeon, Intel Xeon Phi and
Pentium are trademarks of Intel Corporation in the U.S. and/or other
countries.
Intel, the Intel logo, Intel Core, Xeon, Xeon Phi and Pentium are
trademarks of Intel Corporation in the U.S. and/or other countries.
* Other names and brands may be claimed as the property of others.
+1 -1
View File
@@ -50,7 +50,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -46,7 +46,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -48,7 +48,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -34,7 +34,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -50,7 +50,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -44,7 +44,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+1 -1
View File
@@ -48,7 +48,7 @@
</div></div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+2 -2
View File
@@ -34,7 +34,7 @@
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="a00259.html">List of all members</a> </div>
<a href="a00260.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">__TBB_malloc_proxy_caller Struct Reference</div> </div>
</div><!--header-->
@@ -45,7 +45,7 @@
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,14 +33,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00009.html">accessor</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00009.html">accessor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00356.html">List of all members</a> </div>
<a href="a00357.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor Class Reference</div> </div>
</div><!--header-->
@@ -135,7 +135,7 @@ class tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::acce
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00010.html">accessor_not_used</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00010.html">accessor_not_used</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00357.html">List of all members</a> </div>
<a href="a00358.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::accessor_not_used Struct Reference</div> </div>
</div><!--header-->
@@ -57,7 +57,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> ()</td></
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00011.html">aggregator</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00011.html">aggregator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00376.html">List of all members</a> </div>
<a href="a00378.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator Class Reference</div> </div>
</div><!--header-->
@@ -116,7 +116,7 @@ template&lt;typename Body &gt; </div>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,14 +33,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00012.html">aggregator_ext</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00012.html">aggregator_ext</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="a00375.html">List of all members</a> </div>
<a href="a00377.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator_ext&lt; handler_type &gt; Class Template Reference</div> </div>
</div><!--header-->
@@ -142,7 +142,7 @@ template&lt;typename handler_type&gt; </div>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00013.html">aggregator_operation</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00013.html">aggregator_operation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -41,7 +41,7 @@
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00374.html">List of all members</a> </div>
<a href="a00376.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::aggregator_operation Class Reference</div> </div>
</div><!--header-->
@@ -120,7 +120,7 @@ template&lt;typename handler_type &gt; </td></tr>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+4 -4
View File
@@ -33,15 +33,15 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00014.html">aligned_space</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00014.html">aligned_space</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00261.html">List of all members</a> </div>
<a href="a00262.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::aligned_space&lt; T, N &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::aligned_space&lt; T, N &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -73,7 +73,7 @@ class tbb::aligned_space&lt; T, N &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+4 -4
View File
@@ -33,15 +33,15 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00015.html">atomic</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00015.html">atomic</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00262.html">List of all members</a> </div>
<a href="a00263.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::atomic&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00255.html">Synchronization</a></div></div> </div>
<div class="title">tbb::atomic&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="a00256.html">Synchronization</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -82,7 +82,7 @@ struct tbb::atomic&lt; T &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00016.html">atomic< void * ></a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00016.html">atomic< void * ></a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00263.html">List of all members</a> </div>
<a href="a00264.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::atomic&lt; void * &gt; Struct Template Reference</div> </div>
</div><!--header-->
@@ -81,7 +81,7 @@ struct tbb::atomic&lt; void * &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+2 -2
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00144.html">task_arena</a></li><li class="navelem"><a class="el" href="a00017.html">attach</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00144.html">task_arena</a></li><li class="navelem"><a class="el" href="a00017.html">attach</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -54,7 +54,7 @@
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00018.html">bad_last_alloc</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00018.html">bad_last_alloc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00313.html">List of all members</a> </div>
<a href="a00314.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::bad_last_alloc Class Reference</div> </div>
</div><!--header-->
@@ -72,7 +72,7 @@ const char *&#160;</td><td class="memItemRight" valign="bottom"><b>what</b> () c
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00019.html">basic_handler</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00019.html">basic_handler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00392.html">List of all members</a> </div>
<a href="a00394.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_handler Class Reference</div> </div>
</div><!--header-->
@@ -57,7 +57,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (<a cl
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00020.html">basic_operation</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00020.html">basic_operation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00391.html">List of all members</a> </div>
<a href="a00393.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_operation&lt; Body &gt; Class Template Reference</div> </div>
</div><!--header-->
@@ -75,7 +75,7 @@ Additional Inherited Members</h2></td></tr>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00021.html">basic_operation_base</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00021.html">basic_operation_base</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#friends">Friends</a> &#124;
<a href="a00390.html">List of all members</a> </div>
<a href="a00392.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface6::internal::basic_operation_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
@@ -89,7 +89,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>set_next</b> (<a clas
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+4 -4
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00022.html">blocked_range</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00022.html">blocked_range</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -42,9 +42,9 @@
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="a00264.html">List of all members</a> </div>
<a href="a00265.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range&lt; Value &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00252.html">Algorithms</a></div></div> </div>
<div class="title">tbb::blocked_range&lt; Value &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -316,7 +316,7 @@ template&lt;typename Value&gt; </div>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+4 -4
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00023.html">blocked_range2d</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00023.html">blocked_range2d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -41,9 +41,9 @@
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00265.html">List of all members</a> </div>
<a href="a00266.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00252.html">Algorithms</a></div></div> </div>
<div class="title">tbb::blocked_range2d&lt; RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -115,7 +115,7 @@ class tbb::blocked_range2d&lt; RowValue, ColValue &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+4 -4
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00024.html">blocked_range3d</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00024.html">blocked_range3d</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -41,9 +41,9 @@
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="a00266.html">List of all members</a> </div>
<a href="a00267.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00252.html">Algorithms</a></div></div> </div>
<div class="title">tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00253.html">Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -122,7 +122,7 @@ class tbb::blocked_range3d&lt; PageValue, RowValue, ColValue &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00025.html">broadcast_cache</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><b>internal</b></li><li class="navelem"><a class="el" href="a00025.html">broadcast_cache</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -42,12 +42,12 @@
</div><!--header-->
<div class="contents">
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="a00188.html">flow_graph.h</a></li>
<li><a class="el" href="a00189.html">flow_graph.h</a></li>
</ul>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00026.html">bucket_accessor</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00026.html">bucket_accessor</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00358.html">List of all members</a> </div>
<a href="a00359.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::bucket_accessor Class Reference</div> </div>
</div><!--header-->
@@ -87,7 +87,7 @@ class tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::buck
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+5 -5
View File
@@ -33,7 +33,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00027.html">cache_aligned_allocator</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00027.html">cache_aligned_allocator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -41,9 +41,9 @@
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00267.html">List of all members</a> </div>
<a href="a00268.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::cache_aligned_allocator&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -54,7 +54,7 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">rebind</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
@@ -138,7 +138,7 @@ class tbb::cache_aligned_allocator&lt; T &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+5 -5
View File
@@ -33,16 +33,16 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><a class="el" href="a00028.html">cache_aligned_allocator< void ></a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><a class="el" href="a00028.html">cache_aligned_allocator< void ></a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="a00269.html">List of all members</a> </div>
<a href="a00270.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00254.html">Memory Allocation</a></div></div> </div>
<div class="title">tbb::cache_aligned_allocator&lt; void &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00255.html">Memory Allocation</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -53,7 +53,7 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">rebind</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">rebind</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
@@ -79,7 +79,7 @@ class tbb::cache_aligned_allocator&lt; void &gt;</h3>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,14 +33,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00029.html">call_clear_on_leave</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>interface5</b></li><li class="navelem"><a class="el" href="a00036.html">concurrent_hash_map</a></li><li class="navelem"><a class="el" href="a00029.html">call_clear_on_leave</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="a00359.html">List of all members</a> </div>
<a href="a00360.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::interface5::concurrent_hash_map&lt; Key, T, HashCompare, A &gt;::call_clear_on_leave Struct Reference</div> </div>
</div><!--header-->
@@ -67,7 +67,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00030.html">callback</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00030.html">callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00337.html">List of all members</a> </div>
<a href="a00338.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface9::callback&lt; Callback, T &gt; Class Template Reference</div> </div>
</div><!--header-->
@@ -69,7 +69,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> () __TBB_ove
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
+3 -3
View File
@@ -33,13 +33,13 @@
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="a00233.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00031.html">callback_base</a></li> </ul>
<li class="navelem"><a class="el" href="a00234.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface9</b></li><li class="navelem"><a class="el" href="a00031.html">callback_base</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a00336.html">List of all members</a> </div>
<a href="a00337.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">tbb::flow::interface9::callback_base Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
@@ -66,7 +66,7 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>call</b> ()=0
</div><!-- contents -->
<hr>
<p></p>
Copyright &copy; 2005-2017 Intel Corporation. All Rights Reserved.
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its

Some files were not shown because too many files have changed in this diff Show More