[Bf-blender-cvs] [677e63d5186] master: TBB: fix deprecation warnings with newer TBB versions

Brecht Van Lommel noreply at git.blender.org
Wed Feb 10 19:32:36 CET 2021


Commit: 677e63d51869bb89f2ca1adee2e8350ed379005d
Author: Brecht Van Lommel
Date:   Wed Feb 10 18:17:23 2021 +0100
Branches: master
https://developer.blender.org/rB677e63d51869bb89f2ca1adee2e8350ed379005d

TBB: fix deprecation warnings with newer TBB versions

* USD and OpenVDB headers use deprecated TBB headers, suppress all deprecation
  warnings there since we have no control over them.
* For our own TBB includes, use the individual headers rather than the tbb.h that
  includes everything to avoid warnings, rather than suppressing all.

This is in anticipation of the TBB 2020 upgrade in D10359. Ref D10361.

===================================================================

M	CMakeLists.txt
M	extern/mantaflow/CMakeLists.txt
M	intern/cycles/util/util_tbb.h
M	source/blender/blenlib/BLI_task.hh
M	source/blender/blenlib/intern/task_graph.cc
M	source/blender/blenlib/intern/task_pool.cc
M	source/blender/blenlib/intern/task_range.cc
M	source/blender/blenlib/intern/task_scheduler.cc
M	source/blender/io/usd/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00674809095..44385d81ff6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1026,6 +1026,9 @@ if(WITH_OPENVDB)
     list(APPEND OPENVDB_DEFINITIONS -DOPENVDB_3_ABI_COMPATIBLE)
   endif()
 
+  # OpenVDB headers use deprecated TBB headers, silence warning.
+  list(APPEND OPENVDB_DEFINITIONS -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1)
+
   list(APPEND OPENVDB_INCLUDE_DIRS
     ${BOOST_INCLUDE_DIR}
     ${TBB_INCLUDE_DIRS}
diff --git a/extern/mantaflow/CMakeLists.txt b/extern/mantaflow/CMakeLists.txt
index 82bf95a9742..c1fa13420b8 100644
--- a/extern/mantaflow/CMakeLists.txt
+++ b/extern/mantaflow/CMakeLists.txt
@@ -75,6 +75,8 @@ endif()
 
 if(WITH_OPENVDB)
   add_definitions(-DOPENVDB=1)
+  # OpenVDB headers use deprecated TBB headers, silence warning.
+  add_definitions(-DTBB_SUPPRESS_DEPRECATED_MESSAGES=1)
 endif()
 
 if(WITH_OPENVDB_BLOSC)
diff --git a/intern/cycles/util/util_tbb.h b/intern/cycles/util/util_tbb.h
index 168bd5db961..73e0f92d19c 100644
--- a/intern/cycles/util/util_tbb.h
+++ b/intern/cycles/util/util_tbb.h
@@ -21,11 +21,14 @@
  * WIN32_LEAN_AND_MEAN and similar are defined beforehand. */
 #include "util_windows.h"
 
-#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-#include <tbb/tbb.h>
+#include <tbb/enumerable_thread_specific.h>
+#include <tbb/parallel_for.h>
+#include <tbb/task_arena.h>
+#include <tbb/task_group.h>
 
 #if TBB_INTERFACE_VERSION_MAJOR >= 10
 #  define WITH_TBB_GLOBAL_CONTROL
+#  include <tbb/global_control.h>
 #endif
 
 CCL_NAMESPACE_BEGIN
diff --git a/source/blender/blenlib/BLI_task.hh b/source/blender/blenlib/BLI_task.hh
index 0da03d84793..8e963c958b2 100644
--- a/source/blender/blenlib/BLI_task.hh
+++ b/source/blender/blenlib/BLI_task.hh
@@ -22,15 +22,15 @@
 
 #ifdef WITH_TBB
 /* Quiet top level deprecation message, unrelated to API usage here. */
-#  define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-
 #  if defined(WIN32) && !defined(NOMINMAX)
 /* TBB includes Windows.h which will define min/max macros causing issues
  * when we try to use std::min and std::max later on. */
 #    define NOMINMAX
 #    define TBB_MIN_MAX_CLEANUP
 #  endif
-#  include <tbb/tbb.h>
+#  include <tbb/blocked_range.h>
+#  include <tbb/parallel_for.h>
+#  include <tbb/parallel_for_each.h>
 #  ifdef WIN32
 /* We cannot keep this defined, since other parts of the code deal with this on their own, leading
  * to multiple define warnings unless we un-define this, however we can only undefine this if we
diff --git a/source/blender/blenlib/intern/task_graph.cc b/source/blender/blenlib/intern/task_graph.cc
index 5b804cd1df8..32450c16630 100644
--- a/source/blender/blenlib/intern/task_graph.cc
+++ b/source/blender/blenlib/intern/task_graph.cc
@@ -28,10 +28,7 @@
 #include <vector>
 
 #ifdef WITH_TBB
-/* Quiet top level deprecation message, unrelated to API usage here. */
-#  define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
 #  include <tbb/flow_graph.h>
-#  include <tbb/tbb.h>
 #endif
 
 /* Task Graph */
diff --git a/source/blender/blenlib/intern/task_pool.cc b/source/blender/blenlib/intern/task_pool.cc
index 10f15f8749c..00ba659a9c8 100644
--- a/source/blender/blenlib/intern/task_pool.cc
+++ b/source/blender/blenlib/intern/task_pool.cc
@@ -34,9 +34,9 @@
 #include "BLI_threads.h"
 
 #ifdef WITH_TBB
-/* Quiet top level deprecation message, unrelated to API usage here. */
-#  define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-#  include <tbb/tbb.h>
+#  include <tbb/blocked_range.h>
+#  include <tbb/task_arena.h>
+#  include <tbb/task_group.h>
 #endif
 
 /* Task
diff --git a/source/blender/blenlib/intern/task_range.cc b/source/blender/blenlib/intern/task_range.cc
index c2498de1af8..a27241e91dd 100644
--- a/source/blender/blenlib/intern/task_range.cc
+++ b/source/blender/blenlib/intern/task_range.cc
@@ -32,9 +32,10 @@
 #include "atomic_ops.h"
 
 #ifdef WITH_TBB
-/* Quiet top level deprecation message, unrelated to API usage here. */
-#  define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-#  include <tbb/tbb.h>
+#  include <tbb/blocked_range.h>
+#  include <tbb/enumerable_thread_specific.h>
+#  include <tbb/parallel_for.h>
+#  include <tbb/parallel_reduce.h>
 #endif
 
 #ifdef WITH_TBB
diff --git a/source/blender/blenlib/intern/task_scheduler.cc b/source/blender/blenlib/intern/task_scheduler.cc
index b0245da0385..b22334a5676 100644
--- a/source/blender/blenlib/intern/task_scheduler.cc
+++ b/source/blender/blenlib/intern/task_scheduler.cc
@@ -26,10 +26,10 @@
 #include "BLI_threads.h"
 
 #ifdef WITH_TBB
-/* Quiet top level deprecation message, unrelated to API usage here. */
-#  define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-#  include <tbb/tbb.h>
+/* Need to include at least one header to get the version define. */
+#  include <tbb/blocked_range.h>
 #  if TBB_INTERFACE_VERSION_MAJOR >= 10
+#    include <tbb/global_control.h>
 #    define WITH_TBB_GLOBAL_CONTROL
 #  endif
 #endif
diff --git a/source/blender/io/usd/CMakeLists.txt b/source/blender/io/usd/CMakeLists.txt
index 79b15c60b94..6ea30f48a13 100644
--- a/source/blender/io/usd/CMakeLists.txt
+++ b/source/blender/io/usd/CMakeLists.txt
@@ -30,6 +30,9 @@ if(WIN32)
 endif()
 add_definitions(-DPXR_STATIC)
 
+# USD headers use deprecated TBB headers, silence warning.
+add_definitions(-DTBB_SUPPRESS_DEPRECATED_MESSAGES=1)
+
 set(INC
   .
   ../common



More information about the Bf-blender-cvs mailing list