From 1808099495fa3b7c9562124232550a05577e920d Mon Sep 17 00:00:00 2001
From: acrovato <a.crovato@uliege.be>
Date: Wed, 27 Apr 2022 14:15:00 +0200
Subject: [PATCH] Fix find TBB version for older TBB

---
 CMake/FindTBB.cmake | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/CMake/FindTBB.cmake b/CMake/FindTBB.cmake
index 4ad0090..351f7f7 100644
--- a/CMake/FindTBB.cmake
+++ b/CMake/FindTBB.cmake
@@ -78,7 +78,7 @@ SET(TBB_CXX_FLAGS_DEBUG "-DTBB_USE_THREADING_TOOLS=1 -DTBB_USE_DEBUG=1")
 
 # --- List of libraries to be found ---
 
-IF(DEFINED ENV{ONEAPI_ROOT})
+IF(DEFINED ENV{ONEAPI_ROOT} AND MSVC)
     set(_TBB_TBBLIB_NAME    "tbb12")
 ELSE()
     set(_TBB_TBBLIB_NAME    "tbb")
@@ -245,27 +245,28 @@ unset(_TBB_INCLUDE_DIRS CACHE)
 # Versions
 # ----------------------------------------------------------------------------  
  
-# Find file containing version info
+# Find file containing version info and read the version
 IF(EXISTS "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h")
     FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE) # older TBB
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*"     "\\1" _TBB_VERSION_MAJOR     "${_FILE}")
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*"     "\\1" _TBB_VERSION_MINOR     "${_FILE}")
+    SET(TBB_VERSION ${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR})
 ELSEIF(EXISTS "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h")
     FILE(READ "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h" _FILE) # newer oneTBB
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*"     "\\1" _TBB_VERSION_MAJOR     "${_FILE}")
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*"     "\\1" _TBB_VERSION_MINOR     "${_FILE}")
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_PATCH ([0-9]+).*"     "\\1" _TBB_VERSION_PATCH     "${_FILE}")
+    SET(TBB_VERSION ${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}.${_TBB_VERSION_PATCH})
 ELSE()
     MESSAGE(STATUS "TBB_LIBRARIES: ${TBB_LIBRARIES}")
     MESSAGE(STATUS "TBB_INCLUDE_DIRS: ${TBB_INCLUDE_DIRS}")
     MESSAGE(FATAL_ERROR "Cannot find version file in ${TBB_INCLUDE_DIRS}/tbb.")
 ENDIF()
-# If file has been found, read the version
-IF (DEFINED _FILE)
-    STRING(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _TBB_VERSION_INTERFACE "${_FILE}")
-    STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*"     "\\1" _TBB_VERSION_MAJOR     "${_FILE}")
-    STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*"     "\\1" _TBB_VERSION_MINOR     "${_FILE}")
-    STRING(REGEX REPLACE ".*#define TBB_VERSION_PATCH ([0-9]+).*"     "\\1" _TBB_VERSION_PATCH     "${_FILE}")
-    SET(TBB_INTERFACE_VERSION ${_TBB_INTERFACE_VERSION})
-    SET(TBB_VERSION ${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}.${_TBB_VERSION_PATCH})
-    IF (_VERB)
-        MESSAGE(STATUS "TBB version: ${TBB_VERSION} (${TBB_INTERFACE_VERSION})")
-    ENDIF()
+# If file has been found, also read the interface version
+STRING(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _TBB_VERSION_INTERFACE "${_FILE}")
+SET(TBB_INTERFACE_VERSION ${_TBB_VERSION_INTERFACE})
+IF (_VERB)
+    MESSAGE(STATUS "TBB version: ${TBB_VERSION} (${TBB_INTERFACE_VERSION})")
 ENDIF()
 # ----------------------------------------------------------------------------   
 
-- 
GitLab