[Bf-blender-cvs] [626a79204ee] master: MSVC: Fix build warning
Ray Molenkamp
noreply at git.blender.org
Tue Nov 10 16:48:26 CET 2020
Commit: 626a79204ee2a9023cca1f7b9dfd88aa8d25cfc6
Author: Ray Molenkamp
Date: Tue Nov 10 08:48:18 2020 -0700
Branches: master
https://developer.blender.org/rB626a79204ee2a9023cca1f7b9dfd88aa8d25cfc6
MSVC: Fix build warning
If a define of NOMINMAX was made before BLI_task.hh was included,
the compiler would emit a
warning C4005: 'NOMINMAX': macro redefinition
warning, to work around this only define it if it is not already
defined, and only undefine it if we were the ones that made the
define earlier.
===================================================================
M source/blender/blenlib/BLI_task.hh
===================================================================
diff --git a/source/blender/blenlib/BLI_task.hh b/source/blender/blenlib/BLI_task.hh
index 8a0d77745c8..0da03d84793 100644
--- a/source/blender/blenlib/BLI_task.hh
+++ b/source/blender/blenlib/BLI_task.hh
@@ -24,16 +24,20 @@
/* Quiet top level deprecation message, unrelated to API usage here. */
# define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
-# ifdef WIN32
+# 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>
# 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. */
-# undef NOMINMAX
+/* 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
+ * were the ones that made the definition earlier. */
+# ifdef TBB_MIN_MAX_CLEANUP
+# undef NOMINMAX
+# endif
# endif
#endif
More information about the Bf-blender-cvs
mailing list