diff --git a/.gitignore b/.gitignore
index 13b5c5a11f..9b2411eca8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,4 @@ CMakeFiles/
.svn
crash*
*.tmp
+/.vs
diff --git a/CHANGES b/CHANGES
index 6e7cb60fd9..79bb6754b8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,40 @@
The list of most significant changes made over time in
Intel(R) Threading Building Blocks (Intel(R) TBB).
+Intel TBB 2019 Update 9
+TBB_INTERFACE_VERSION == 11009
+
+Changes (w.r.t. Intel TBB 2019 Update 8):
+
+- Multiple APIs are deprecated. For details, please see
+ Deprecated Features appendix in the TBB reference manual.
+- Added C++17 deduction guides for flow graph nodes.
+
+Preview Features:
+
+- Added isolated_task_group class that allows multiple threads to add
+ and execute tasks sharing the same isolation.
+- Extended the flow graph API to simplify connecting nodes.
+- Added erase() by heterogeneous keys for concurrent ordered containers.
+- Added a possibility to suspend task execution at a specific point
+ and resume it later.
+
+Bugs fixed:
+
+- Fixed the emplace() method of concurrent unordered containers to
+ destroy a temporary element that was not inserted.
+- Fixed a bug in the merge() method of concurrent unordered
+ containers.
+- Fixed behavior of a continue_node that follows buffering nodes.
+
+Open-source contributions integrated:
+
+- Added support for move-only types to tbb::parallel_pipeline
+ (https://github.com/intel/tbb/pull/159) by Raf Schietekat.
+- Fixed detection of clang version when CUDA toolkit is installed
+ (https://github.com/intel/tbb/pull/150) by Guilherme Amadio.
+
+------------------------------------------------------------------------
Intel TBB 2019 Update 8
TBB_INTERFACE_VERSION == 11008
diff --git a/README.md b/README.md
index 4efa64a664..926a964e40 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-# Threading Building Blocks 2019 Update 8
-[![Stable release](https://img.shields.io/badge/version-2019_U8-green.svg)](https://github.com/01org/tbb/releases/tag/2019_U8)
+# Threading Building Blocks 2019 Update 9
+[![Stable release](https://img.shields.io/badge/version-2019_U9-green.svg)](https://github.com/intel/tbb/releases/tag/2019_U9)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take
@@ -8,7 +8,7 @@ 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).
-Since [2018 U5](https://github.com/01org/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
+Since [2018 U5](https://github.com/intel/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
## Documentation
* TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
@@ -17,7 +17,7 @@ and [latest](https://www.threadingbuildingblocks.org/docs/help/index.htm)
## Support
Please report issues and suggestions via
-[GitHub issues](https://github.com/01org/tbb/issues) or start a topic on the
+[GitHub issues](https://github.com/intel/tbb/issues) or start a topic on the
[TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
## How to Contribute
diff --git a/build/BSD.inc b/build/BSD.inc
index 6ef75dbabb..bb35b58d51 100644
--- a/build/BSD.inc
+++ b/build/BSD.inc
@@ -25,7 +25,7 @@ ifndef arch
endif
ifndef runtime
- clang_version:=$(shell clang -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/")
+ clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(clang_version)_kernel$(os_kernel_version)
diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc
index 653d4a3ed1..ebc47d76eb 100644
--- a/build/FreeBSD.gcc.inc
+++ b/build/FreeBSD.gcc.inc
@@ -32,7 +32,7 @@ C_FLAGS = $(CPLUS_FLAGS)
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
diff --git a/build/Makefile.rml b/build/Makefile.rml
index 62983a6418..69e2e05993 100644
--- a/build/Makefile.rml
+++ b/build/Makefile.rml
@@ -60,6 +60,13 @@ TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ
ifeq ($(cfg),debug)
RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
+
+ifeq (windows icl,$(tbb_os) $(compiler_name))
+# Some versions of ICC link to the wrong version of the vc runtime
+# libcpmtd.lib should be used instead of libcpmt.lib
+LIB_LINK_FLAGS += /nodefaultlib:libcpmt.lib
+endif
+
else
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
endif
diff --git a/build/Makefile.test b/build/Makefile.test
index a014e13783..4eb0010a31 100644
--- a/build/Makefile.test
+++ b/build/Makefile.test
@@ -103,6 +103,9 @@ test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
ifneq (,$(BIGOBJ_KEY))
TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
test_atomic.$(TEST_EXT) \
+ test_concurrent_hash_map.$(TEST_EXT) \
+ test_concurrent_set.$(TEST_EXT) \
+ test_concurrent_map.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_join_node_key_matching.$(TEST_EXT) \
@@ -130,6 +133,8 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_concurrent_hash_map.$(TEST_EXT) \
+ test_concurrent_set.$(TEST_EXT) \
+ test_concurrent_map.$(TEST_EXT) \
test_enumerable_thread_specific.$(TEST_EXT) \
test_handle_perror.$(TEST_EXT) \
test_halt.$(TEST_EXT) \
@@ -211,6 +216,7 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_composite_node.$(TEST_EXT) \
test_async_node.$(TEST_EXT) \
test_async_msg.$(TEST_EXT) \
+ test_resumable_tasks.$(TEST_EXT) \
test_tbb_version.$(TEST_EXT) # insert new files right above
# These tests depend on other technologies
diff --git a/build/common_rules.inc b/build/common_rules.inc
index d56b92485a..e974701314 100644
--- a/build/common_rules.inc
+++ b/build/common_rules.inc
@@ -42,6 +42,10 @@ endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
+
+# Suppress warnings about usage of deprecated content
+CPLUS_FLAGS += $(DEFINE_KEY)TBB_SUPPRESS_DEPRECATED_MESSAGES=1
+
ifeq (1,$(tbb_cpf))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
endif
diff --git a/build/detect.js b/build/detect.js
index ccbe98634b..6617e3e1d1 100644
--- a/build/detect.js
+++ b/build/detect.js
@@ -57,12 +57,18 @@ function doWork() {
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");
+ for (var i = 0; i < 3; i++) {
+ v1 = parseInt(gccVersion.split('.')[i]);
+ v2 = parseInt(WScript.Arguments(2).split('.')[i]);
+
+ if (v1 > v2) {
+ break;
+ } else if (v1 < v2) {
+ WScript.Echo("fail");
+ return;
+ }
}
+ WScript.Echo("ok");
}
}
return;
@@ -121,6 +127,8 @@ function doWork() {
} else if (mapContext.match(vc140)) {
if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "15.0")
WScript.Echo("vc14.1");
+ else if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "16.0")
+ WScript.Echo("vc14.2");
else
WScript.Echo("vc14");
} else {
diff --git a/build/linux.clang.inc b/build/linux.clang.inc
index 9965331118..a0caf16e2b 100644
--- a/build/linux.clang.inc
+++ b/build/linux.clang.inc
@@ -30,17 +30,21 @@ EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+ # -g is set intentionally in the release mode. It should not affect performance.
+ CPLUS_FLAGS = -O2 -g
endif
ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
endif
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib)
LIB_LINK_FLAGS += -stdlib=$(stdlib)
diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
index b8986768a1..14428ad6b9 100644
--- a/build/linux.gcc.inc
+++ b/build/linux.gcc.inc
@@ -31,27 +31,27 @@ EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
# gcc 4.2 and higher support OpenMP
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[2-9]|[5-9]|1[0-9])"))
OPENMP_FLAG = -fopenmp
endif
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9]|1[0-9])"))
RTM_KEY = -mrtm
endif
# gcc 4.0 and later have -Wextra that is used by some our customers.
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([4-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([4-9]|1[0-9])"))
WARNING_KEY += -Wextra
endif
# gcc 5.0 and later have -Wsuggest-override and -Wno-sized-deallocation options
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9]|1[0-9])"))
# enable -Wsuggest-override via a pre-included header in order to limit to C++11 and above
INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
WARNING_SUPPRESS += -Wno-sized-deallocation
@@ -59,18 +59,22 @@ endif
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+ # -g is set intentionally in the release mode. It should not affect performance.
+ CPLUS_FLAGS = -O2 -g
endif
ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
endif
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
diff --git a/build/linux.icc.inc b/build/linux.icc.inc
index 3079812abe..210ad178dc 100644
--- a/build/linux.icc.inc
+++ b/build/linux.icc.inc
@@ -34,16 +34,20 @@ endif
ITT_NOTIFY = -DDO_ITT_NOTIFY
ifeq (release,$(cfg))
SDL_FLAGS += -D_FORTIFY_SOURCE=2
-CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -g -DUSE_PTHREAD
+# -g is set intentionally in the release mode. It should not affect performance.
+CPLUS_FLAGS = -O2 -g -qno-opt-report-embed
else
-CPLUS_FLAGS = $(ITT_NOTIFY) -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
+CPLUS_FLAGS = -O0 -g -DTBB_USE_DEBUG
endif
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
OPENMP_FLAG = -qopenmp
else
diff --git a/build/macos.clang.inc b/build/macos.clang.inc
index 4316fa3952..5b67de4400 100644
--- a/build/macos.clang.inc
+++ b/build/macos.clang.inc
@@ -42,6 +42,11 @@ endif
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
+ifeq (1,$(tbb_cpf))
+# For correct ucontext.h structures layout
+CPLUS_FLAGS += -D_XOPEN_SOURCE
+endif
+
# For Clang, we add the option to support RTM intrinsics *iff* xtest is found in
ifneq (,$(shell grep xtest `echo "\#include" | $(CONLY) -E -M - 2>&1 | grep immintrin.h` 2>/dev/null))
RTM_KEY = -mrtm
diff --git a/build/macos.gcc.inc b/build/macos.gcc.inc
index b03dc9cba1..2a6f3856ee 100644
--- a/build/macos.gcc.inc
+++ b/build/macos.gcc.inc
@@ -35,19 +35,19 @@ LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9]|1[0-9])"))
RTM_KEY = -mrtm
endif
# gcc 5.0 and later have -Wsuggest-override option
# enable it via a pre-included header in order to limit to C++11 and above
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9]|1[0-9])"))
INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
endif
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
diff --git a/build/macos.icc.inc b/build/macos.icc.inc
index 506d98c9c6..20f59b2649 100644
--- a/build/macos.icc.inc
+++ b/build/macos.icc.inc
@@ -49,7 +49,7 @@ endif
ifeq ($(cfg), release)
SDL_FLAGS += -D_FORTIFY_SOURCE=2
- CPLUS_FLAGS = -g -O2 -fno-omit-frame-pointer
+ CPLUS_FLAGS = -g -O2 -fno-omit-frame-pointer -qno-opt-report-embed
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
@@ -57,6 +57,11 @@ endif
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
+ifeq (1,$(tbb_cpf))
+# For correct ucontext.h structures layout
+CPLUS_FLAGS += -D_XOPEN_SOURCE
+endif
+
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
endif
diff --git a/build/macos.inc b/build/macos.inc
index aa2923baf7..99c46e91d2 100644
--- a/build/macos.inc
+++ b/build/macos.inc
@@ -45,7 +45,7 @@ ifndef arch
endif
ifndef runtime
- clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/")
+ clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
ifndef os_version
os_version:=$(shell /usr/bin/sw_vers -productVersion)
endif
diff --git a/build/version_info_macos.sh b/build/version_info_macos.sh
index d49fcf8ed2..370e4e1a00 100644
--- a/build/version_info_macos.sh
+++ b/build/version_info_macos.sh
@@ -19,7 +19,7 @@ echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`arch`")"'" ENDL \'
echo '#N": BUILD_OS'"\t\t"`sw_vers -productName`" version "`sw_vers -productVersion`'" ENDL \'
echo '#N": BUILD_KERNEL'"\t"`uname -v`'" ENDL \'
-echo '#N": BUILD_CLANG'"\t"`clang --version &1 | grep 'version '`'" ENDL \'
+echo '#N": BUILD_CLANG'"\t"`clang --version | sed -n "1p"`'" ENDL \'
echo '#N": BUILD_XCODE'"\t"`xcodebuild -version &1 | grep 'Xcode'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
diff --git a/build/vs2013/tbb.vcxproj b/build/vs2013/tbb.vcxproj
index cbfcd3919d..e1aa9b549d 100644
--- a/build/vs2013/tbb.vcxproj
+++ b/build/vs2013/tbb.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../includeDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -198,7 +198,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../includeDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -223,7 +223,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreadedDLL
@@ -250,7 +250,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreadedDLL
@@ -273,7 +273,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../includeDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -301,7 +301,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../includeDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -326,7 +326,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreaded
@@ -353,7 +353,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreaded
diff --git a/build/vs2013/tbbmalloc.vcxproj b/build/vs2013/tbbmalloc.vcxproj
index 0a38cd5f65..b8f21dd5d3 100644
--- a/build/vs2013/tbbmalloc.vcxproj
+++ b/build/vs2013/tbbmalloc.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.Disabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -197,7 +197,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.Disabled.;%(AdditionalIncludeDirectories)false
@@ -222,7 +222,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I..;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreadedDLL
@@ -248,7 +248,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I..;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreadedDLL
@@ -271,7 +271,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.Disabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -298,7 +298,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.Disabled.;%(AdditionalIncludeDirectories)false
@@ -323,7 +323,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I..;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreaded
@@ -347,7 +347,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I..;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)MultiThreaded
diff --git a/build/vs2013/tbbmalloc_proxy.vcxproj b/build/vs2013/tbbmalloc_proxy.vcxproj
index 758bb51741..23dac2f64b 100644
--- a/build/vs2013/tbbmalloc_proxy.vcxproj
+++ b/build/vs2013/tbbmalloc_proxy.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmallocDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -199,7 +199,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmallocDisabled.;%(AdditionalIncludeDirectories)false
@@ -227,7 +227,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -256,7 +256,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -282,7 +282,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmallocDisabled.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -311,7 +311,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmallocDisabled.;%(AdditionalIncludeDirectories)false
@@ -339,7 +339,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
@@ -368,7 +368,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc.;%(AdditionalIncludeDirectories)%(PreprocessorDefinitions)
diff --git a/build/windows.icl.inc b/build/windows.icl.inc
index 8010d5fc3c..de2e66aaf6 100644
--- a/build/windows.icl.inc
+++ b/build/windows.icl.inc
@@ -51,6 +51,11 @@ ifeq (ok,$(call detect_js,/minversion icl 17 4))
VS2017_SUPPORT = yes
endif
+# ICC 19.0.4 and higher provide support for VS2019
+ifeq (ok,$(call detect_js,/minversion icl 19 4))
+ VS2019_SUPPORT = yes
+endif
+
ifeq ($(runtime), vc_mt)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
else
@@ -59,7 +64,7 @@ endif
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
+ CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi /Qopt-report-embed- $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
ASM_FLAGS =
endif
ifeq ($(cfg), debug)
@@ -110,7 +115,7 @@ ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc8, $(VCVERSION)),/Qvc8)
endif
ifeq ($(VCCOMPAT_FLAG),)
- VCCOMPAT_FLAG := $(if $(findstring vc_mt, $(VCVERSION)),/Qvc10)
+ VCCOMPAT_FLAG := $(if $(findstring vc_mt, $(VCVERSION)),/Qvc14)
endif
ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc9, $(VCVERSION)),/Qvc9)
@@ -131,6 +136,11 @@ ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := /Qvc14.1
endif
endif
+ ifeq ($(VS2019_SUPPORT),yes)
+ ifneq (,$(findstring vc14.2, $(VCVERSION)))
+ VCCOMPAT_FLAG := /Qvc14.2
+ endif
+ endif
endif
ifeq ($(VCCOMPAT_FLAG),)
$(error VC version not detected correctly: $(VCVERSION) )
diff --git a/build/windows.inc b/build/windows.inc
index fdb9d5b8c3..0d50e079e7 100644
--- a/build/windows.inc
+++ b/build/windows.inc
@@ -59,7 +59,11 @@ def_prefix = $(if $(findstring intel64,$(arch)),win64,win32)
# Target Windows version. Do not increase beyond 0x0502 without prior discussion!
# Used as the value for macro definition option in windows.cl.inc etc.
# For tests, we need at least Windows XP SP2 for sake of enabling stack backtraces.
+ifeq (1,$(tbb_cpf))
+_WIN32_WINNT=0x0600
+else
_WIN32_WINNT=0x0502
+endif
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
@@ -68,7 +72,7 @@ TBB.LIB = tbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(LIBEXT)
TBB.RES = tbb_resource.res
# On Windows, we use #pragma comment to set the proper TBB lib to link with.
# But for cross-configuration testing, need to link explicitly.
-# Tests use this variable to detect dependency on TBB binary, so have to be non-empty.
+# Tests use this variable to detect dependency on TBB binary, so have to be non-empty.
LINK_TBB.LIB = $(if $(crosstest),$(TBB.LIB),$(DEFINE_KEY)__TBB_IMPLICITLY_LINKED)
TBB.MANIFEST =
ifneq ($(filter vc8 vc9,$(runtime)),)
diff --git a/cmake/README.rst b/cmake/README.rst
index 3b16c37c14..52cc46def8 100644
--- a/cmake/README.rst
+++ b/cmake/README.rst
@@ -30,7 +30,7 @@ Visit our `forum `_ has the following format: ``find_package(TBB .. ...)``. TBB interface version can also be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
+* TBB versioning via `find_package `_ has the following format: ``find_package(TBB . ...)``.
Use cases of TBB integration into CMake-aware projects
------------------------------------------------------------
@@ -206,7 +206,7 @@ Variables set during TBB configuration:
``TBB__FOUND`` specific TBB component is found
``TBB_IMPORTED_TARGETS`` all created TBB imported targets
``TBB_VERSION`` TBB version (format: ``.``)
-``TBB_INTERFACE_VERSION`` TBB interface version
+``TBB_INTERFACE_VERSION`` TBB interface version (can be empty, see below for details)
========================= ================================================
TBBInstallConfig
@@ -219,7 +219,7 @@ Provides the following functions:
.. code:: cmake
tbb_install_config(INSTALL_DIR SYSTEM_NAME Linux|Darwin|Windows
- [TBB_VERSION ..|TBB_VERSION_FILE ]
+ [TBB_VERSION .|TBB_VERSION_FILE ]
[LIB_REL_PATH INC_REL_PATH ]
[LIB_PATH INC_PATH ])``
@@ -241,8 +241,8 @@ The use case is applicable for package maintainers who create own TBB packages a
``SYSTEM_NAME Linux|Darwin|Windows`` OS name to generate config files for
``TBB_VERSION_FILE `` Path to ``tbb_stddef.h`` to parse version from and
write it to TBBConfigVersion.cmake
-``TBB_VERSION ..`` Directly specified TBB version;
- alternative to ``TBB_VERSION_FILE`` parameter
+``TBB_VERSION .`` Directly specified TBB version; alternative to ``TBB_VERSION_FILE`` parameter;
+ ``TBB_INTERFACE_VERSION`` is set to empty value in this case
``LIB_REL_PATH `` Relative path to TBB binaries (.lib files on Windows), default: ``../../../lib``
``BIN_REL_PATH `` Relative path to TBB DLLs, default: ``../../../bin`` (applicable for Windows only)
``INC_REL_PATH `` Relative path to TBB headers, default: ``../../../include``
diff --git a/cmake/TBBInstallConfig.cmake b/cmake/TBBInstallConfig.cmake
index b6ed34b0bc..a5fa7e8a58 100644
--- a/cmake/TBBInstallConfig.cmake
+++ b/cmake/TBBInstallConfig.cmake
@@ -83,8 +83,8 @@ function(tbb_install_config)
file(READ ${tbb_version_file} _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_ver_interface "${_tbb_stddef}")
- set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}.${_tbb_ver_interface}")
+ string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
+ set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
endif()
# ------
diff --git a/cmake/TBBMakeConfig.cmake b/cmake/TBBMakeConfig.cmake
index bbcb990b32..b5b7a12243 100644
--- a/cmake/TBBMakeConfig.cmake
+++ b/cmake/TBBMakeConfig.cmake
@@ -56,33 +56,16 @@ function(tbb_make_config)
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()
+ set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir gcc4.8)
# 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)
+if (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\" AND NOT CMAKE_C_COMPILER_ID STREQUAL \"GNU\")
+ find_program(_gcc_executable gcc)
+ if (NOT _gcc_executable)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in 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)")
+ unset(_gcc_executable)
+endif()")
elseif (tbb_system_name STREQUAL "Windows")
set(TBB_SHARED_LIB_DIR "bin")
@@ -96,23 +79,14 @@ unset(_tbb_compiler_ver)")
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)
+if (MSVC_VERSION VERSION_LESS 1900)
+ message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC version 1900 (vc14) or higher\")
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)
+
+set(_tbb_compiler_subdir vc14)
if (WINDOWS_STORE)
- set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_ui)
+ set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_uwp)
endif()")
if (tbb_MK_CONFIG_FOR_SOURCE)
@@ -153,7 +127,7 @@ endif()")
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}.${TBB_INTERFACE_VERSION}")
+ set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_CHOOSE_ARCH_AND_COMPILER "")
diff --git a/cmake/templates/TBBConfig.cmake.in b/cmake/templates/TBBConfig.cmake.in
index 84e25399f8..d5f2eabc8b 100644
--- a/cmake/templates/TBBConfig.cmake.in
+++ b/cmake/templates/TBBConfig.cmake.in
@@ -13,23 +13,12 @@
# limitations under the License.
# It defines the following variables:
-# TBB_tbb_FOUND
-# TBB_tbbmalloc_FOUND
-# TBB_tbbmalloc_proxy_FOUND
+# TBB__FOUND
# TBB_IMPORTED_TARGETS
#
# TBBConfigVersion.cmake defines TBB_VERSION
#
# Initialize to default values
-if (NOT TBB_tbb_FOUND)
- set(TBB_tbb_FOUND 0)
-endif()
-if (NOT TBB_tbbmalloc_FOUND)
- set(TBB_tbbmalloc_FOUND 0)
-endif()
-if (NOT TBB_tbbmalloc_proxy_FOUND)
- set(TBB_tbbmalloc_proxy_FOUND 0)
-endif()
if (NOT TBB_IMPORTED_TARGETS)
set(TBB_IMPORTED_TARGETS "")
endif()
@@ -41,6 +30,8 @@ if (NOT TBB_FIND_COMPONENTS)
endforeach()
endif()
+set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
+
# 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)
@@ -54,6 +45,8 @@ endif()
unset(_tbbmalloc_proxy_ix)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
+ set(TBB_${_tbb_component}_FOUND 0)
+
set(_tbb_release_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
@@ -79,17 +72,17 @@ foreach (_tbb_component ${TBB_FIND_COMPONENTS})
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})
else()
message(STATUS "Using previously found TBB::${_tbb_component}")
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(STATUS "Missed required Intel TBB component: ${_tbb_component}")
message(STATUS " one or both of:\n ${_tbb_release_lib}\n ${_tbb_debug_lib}\n files must exist.")
set(TBB_FOUND FALSE)
- set(TBB_${_tbb_component}_FOUND 0)
endif()
endforeach()
+list(REMOVE_DUPLICATES TBB_IMPORTED_TARGETS)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
diff --git a/cmake/templates/TBBConfigInternal.cmake.in b/cmake/templates/TBBConfigInternal.cmake.in
index 40528c6df1..c3d7ee4caa 100644
--- a/cmake/templates/TBBConfigInternal.cmake.in
+++ b/cmake/templates/TBBConfigInternal.cmake.in
@@ -12,8 +12,16 @@
# 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.
+# It defines the following variables:
+# TBB__FOUND
+# TBB_IMPORTED_TARGETS
+#
+# TBBConfigVersion.cmake defines TBB_VERSION
+#
+# Initialize to default values
+if (NOT TBB_IMPORTED_TARGETS)
+ set(TBB_IMPORTED_TARGETS "")
+endif()
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
@@ -38,39 +46,45 @@ get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
@TBB_CHOOSE_ARCH_AND_COMPILER@
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
+ set(TBB_${_tbb_component}_FOUND 0)
+
set(_tbb_release_lib "@TBB_RELEASE_LIB_PATH@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
set(_tbb_debug_lib "@TBB_DEBUG_LIB_PATH@/@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}")
+ if (NOT TARGET TBB::${_tbb_component})
+ add_library(TBB::${_tbb_component} SHARED IMPORTED)
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()
+ INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
- 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()
+ 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()
- # 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()
+ 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()
+ else()
+ message(STATUS "Using previously found TBB::${_tbb_component}")
+ 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(STATUS "Missed required Intel TBB component: ${_tbb_component}")
+ message(STATUS " one or both of:\n ${_tbb_release_lib}\n ${_tbb_debug_lib}\n files must exist.")
set(TBB_FOUND FALSE)
- set(TBB_${_tbb_component}_FOUND 0)
endif()
endforeach()
+list(REMOVE_DUPLICATES TBB_IMPORTED_TARGETS)
@TBB_UNSET_ADDITIONAL_VARIABLES@
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
diff --git a/examples/GettingStarted/sub_string_finder/Makefile b/examples/GettingStarted/sub_string_finder/Makefile
index 8aa56e712d..77148464b4 100644
--- a/examples/GettingStarted/sub_string_finder/Makefile
+++ b/examples/GettingStarted/sub_string_finder/Makefile
@@ -44,21 +44,24 @@ else ifeq ($(shell uname), Darwin)
override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib
endif
+# autodetect C++11 support
+include ../../common/examples-common.inc
+
all: release test
release: *.cpp
ifeq ($(offload),)
- $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp $(TBBLIB) $(LIBS)
- $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp $(TBBLIB) $(LIBS)
+ $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp $(TBBLIB) $(LIBS) $(CXX0XFLAGS)
+ $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp $(TBBLIB) $(LIBS) $(CXX0XFLAGS)
endif
- $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp $(TBBLIB) $(LIBS)
+ $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp $(TBBLIB) $(LIBS) $(CXX0XFLAGS)
debug: *.cpp
ifeq ($(offload),)
- $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp $(TBBLIB_DEBUG) $(LIBS)
- $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp $(TBBLIB_DEBUG) $(LIBS)
+ $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder sub_string_finder.cpp $(TBBLIB_DEBUG) $(LIBS) $(CXX0XFLAGS)
+ $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder_pretty sub_string_finder_pretty.cpp $(TBBLIB_DEBUG) $(LIBS) $(CXX0XFLAGS)
endif
- $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp $(TBBLIB_DEBUG) $(LIBS)
+ $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o sub_string_finder_extended sub_string_finder_extended.cpp $(TBBLIB_DEBUG) $(LIBS) $(CXX0XFLAGS)
clean:
$(RM) sub_string_finder sub_string_finder_extended sub_string_finder_pretty *.o *.d
diff --git a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcxproj b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcxproj
index 8926181723..b3397cbb3d 100644
--- a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcxproj
+++ b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder.vcxproj
@@ -101,7 +101,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX86
@@ -127,7 +127,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX64
@@ -149,7 +149,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
@@ -176,7 +176,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
diff --git a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcxproj b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcxproj
index fad404334d..0ff7e15d9c 100644
--- a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcxproj
+++ b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_extended.vcxproj
@@ -101,7 +101,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX86
@@ -127,7 +127,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX64
@@ -149,7 +149,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
@@ -176,7 +176,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
diff --git a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcxproj b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcxproj
index bb3e84b762..fced1c2301 100644
--- a/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcxproj
+++ b/examples/GettingStarted/sub_string_finder/msvs/sub_string_finder_pretty.vcxproj
@@ -101,7 +101,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX86
@@ -127,7 +127,7 @@
tbb_debug.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoleMachineX64
@@ -149,7 +149,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc12;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc14;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
@@ -176,7 +176,7 @@
tbb.lib;%(AdditionalDependencies)
- $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc12;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc12;%(AdditionalLibraryDirectories)
+ $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc14;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc14;%(AdditionalLibraryDirectories)trueConsoletrue
diff --git a/examples/Makefile b/examples/Makefile
index dd1339b223..8c07b3e610 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -37,6 +37,8 @@ override CXXFLAGS += $(CXX_STD_FLAGS)
# give stdver priotity over autodetection
ifneq (,$(stdver))
CXX0XFLAGS=-std=$(stdver)
+else
+ include common/examples-common.inc
endif
# empty CXX0XFLAGS exported as well, to have control over C++ autodetection
export CXX0XFLAGS
diff --git a/examples/common/copy_libraries.bat b/examples/common/copy_libraries.bat
index c1ed9d72f5..1c35145214 100644
--- a/examples/common/copy_libraries.bat
+++ b/examples/common/copy_libraries.bat
@@ -41,8 +41,6 @@ if ("%TBBROOT%") == ("") set TBBROOT=%~d0%~p0..\..\
:: Getting vs folders in case vc_mt binaries are not provided
:: ordered from oldest to newest, so we end with newest available version
-if ("%VS110COMNTOOLS%") NEQ ("") set vc_dir=vc11
-if ("%VS120COMNTOOLS%") NEQ ("") set vc_dir=vc12
if ("%VS140COMNTOOLS%") NEQ ("") set vc_dir=vc14
:: To use Microsoft* Visual Studio* 2017 IDE, make sure the variable VS150COMNTOOLS is set in your IDE instance.
:: If it is not, try running Microsoft Visual Studio 2017 from Microsoft* Developer Command Prompt* for VS 2017.
diff --git a/examples/common/examples-common.inc b/examples/common/examples-common.inc
index c0257a7316..f81c18c5db 100644
--- a/examples/common/examples-common.inc
+++ b/examples/common/examples-common.inc
@@ -14,19 +14,19 @@
# detect if a compiler can support C++11
# If CXX0XFLAGS already set, do not change it
-ifneq (,$(findstring $(CXX), icc icpc clang++))
+ifneq (,$(findstring icc, $(CXX))$(findstring icpc, $(CXX))$(findstring clang++, $(CXX)))
# every supported icc or clang is OK
- CXX0XFLAGS ?= -std=c++0x
+ CXX0XFLAGS ?= -std=c++11
else
- ifneq (,$(findstring $(CXX), g++ gcc))
+ ifneq (,$(findstring g++, $(CXX))$(findstring gcc, $(CXX)))
ifneq (, $(strip $(shell $(CXX) -v 2>&1 | grep "clang-")))
# This is clang actually,
# every supported clang is OK
- CXX0XFLAGS ?= -std=c++0x
+ CXX0XFLAGS ?= -std=c++11
else
# support of lambda started GCC 4.5
- ifneq (, $(strip $(shell g++ -dumpfullversion -dumpversion | egrep "^(4\.[5-9]|[5-9])")))
- CXX0XFLAGS ?= -std=c++0x
+ ifneq (, $(strip $(shell g++ -dumpfullversion -dumpversion | egrep "^(4\.[5-9]|[5-9]|1[0-9])")))
+ CXX0XFLAGS ?= -std=c++11
endif
endif
endif
diff --git a/examples/common/index.html b/examples/common/index.html
index 2535857f77..7de00c9f48 100644
--- a/examples/common/index.html
+++ b/examples/common/index.html
@@ -119,11 +119,11 @@
.circ {
list-style-type:circle
}
-
+
.single {
padding: 0 0.5em;
}
-
+
/* ------------------------------------------------- */
/* Table styles */
table{
@@ -150,9 +150,9 @@
}
th{
border:1px #dddddd solid;
- padding-top:2px;
+ padding-top:2px;
padding-bottom:0px;
- padding-right:3px;
+ padding-right:3px;
padding-left:3px;
}
td{
@@ -225,7 +225,7 @@
padding-right:5px;
vertical-align:top;
}
-
+
.specs {
border-collapse:collapse;
}
@@ -242,7 +242,7 @@
padding: 0 0.2em 0.2em;
text-align: center;
}
- .specs td tr:last-child td,
+ .specs td tr:last-child td,
.specs td tr:last-child th {
padding: 0 0.2em;
}
@@ -266,7 +266,7 @@
Intel® Threading Building Blocks. Common source code for samples
-
+
Intel® Threading Building Blocks. Common source code for samples
-
+
This directory contains common code that is used in the Intel® Threading Building Blocks (Intel® TBB) samples.
@@ -332,7 +332,7 @@
Intel® Threading Building Blocks. Common source code fo
See the examples that use the GUI
(stereo,
- tachyon,
+ tachyon,
seismic,
fractal)
for more details.
@@ -360,21 +360,23 @@
Intel® Threading Building Blocks. Common source code fo
Most Intel TBB examples allow to specify n-of-threads, the set of thread numbers that should be used to run an example.
Usually, it is a range of the form low[:high[:(+|*|#)S]], where low and optional high
- are non-negative integers or 'auto' for the default choice, and optional step expression (+|*|#)S
+ are non-negative integers or 'auto' for the default choice, and optional step expression (+|*|#)S
specifies how thread numbers are chosen within the range:
With +/*, the previous number is incremented/multiplied by S.
E.g., expression '12:16:+1' means 12,13,14,15,16 threads, and '1:16:*2' means 1,2,4,8,16 threads.
With #, S is the desired number of steps between any subsequent powers of 2;
- it must be a power of 2 on its own, with most meaningful values being 2, 4, and 8.
+ it must be a power of 2 on its own, with most meaningful values being 2, 4, and 8.
For a given number of threads, the actual step value is computed as the quotient
of the nearest smaller power of 2 divided by the number of steps, but is at least 1.
E.g., '1:32:#4' means 1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32 threads;
note the step doubling at 8 and 16 to keep 4 steps between powers of 2.
A default value for the number of threads can be customized in an example. If not customized, it is '1:auto:#4'.
- The 'auto' parameter is substituted with a value returned by a specified function, which typically is
- tbb::task_scheduler_init::default_num_threads().
+ The 'auto' parameter is substituted with a value returned by a specified function
+ (this function is typically utility::get_default_num_threads(), which returns a copy of
+ constant that was initialized with tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism)
+ at the start of the program).
@@ -388,7 +390,7 @@
Intel® Threading Building Blocks. Common source code fo