Salome HOME
Porting to latest TBB (compatibility with previous old version is provided). V9_4_0a1
authorrnv <rnv@opencascade.com>
Fri, 30 Aug 2019 15:51:08 +0000 (18:51 +0300)
committerrnv <rnv@opencascade.com>
Fri, 30 Aug 2019 15:51:08 +0000 (18:51 +0300)
cmake/FindSalomeTBB.cmake

index b31f57edee48c09b6a59333b7c28350180630038..48b55b1e03ac67bc118f46d3ddebaa90ff283841 100644 (file)
 #
 
 SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(TBB TBB_INCLUDE_DIRS 1)
-MARK_AS_ADVANCED(TBB_INCLUDE_DIRS TBB_LIBRARIES)
+
+IF(TBB_INCLUDE_DIRS AND TBB_LIBRARIES)
+  # No config mode 
+  MARK_AS_ADVANCED(TBB_INCLUDE_DIRS TBB_LIBRARIES)
+ELSEIF(TBB_IMPORTED_TARGETS)
+  #Config mode
+  SET(TBB_LIBRARIES ${TBB_IMPORTED_TARGETS})
+ELSE()
+  MESSAGE(FATAL_ERROR "Can't find tbb installation!")
+ENDIF()
 
 IF(TBB_FOUND) 
-  SALOME_ACCUMULATE_HEADERS(TBB_INCLUDE_DIRS)
-  SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${TBB_LIBRARIES})
+  IF(TBB_INCLUDE_DIRS AND TBB_LIBRARIES)
+    # No config mode 
+    SALOME_ACCUMULATE_HEADERS(TBB_INCLUDE_DIRS)
+    SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${TBB_LIBRARIES})
+  ELSEIF(TBB_IMPORTED_TARGETS)
+    #Config mode
+    LIST(GET TBB_IMPORTED_TARGETS 0 _first_tbb_target)
+
+    # 1. Get TBB libraries dir
+    GET_TARGET_PROPERTY(_tbb_f_lib ${_first_tbb_target} IMPORTED_LOCATION_RELASE)
+    IF(NOT ${_tbb_f_lib})
+      GET_TARGET_PROPERTY(_tbb_f_lib ${_first_tbb_target} IMPORTED_LOCATION_DEBUG)    
+    ENDIF()
+    GET_FILENAME_COMPONENT(_tbb_lib ${_tbb_f_lib} DIRECTORY)
+    GET_FILENAME_COMPONENT(_tbb_lib ${_tbb_lib} ABSOLUTE)
+
+    # 2. Get TBB includes dir
+    GET_TARGET_PROPERTY(_tbb_inc ${_first_tbb_target} INTERFACE_INCLUDE_DIRECTORIES)
+    GET_FILENAME_COMPONENT(_tbb_inc ${_tbb_inc} ABSOLUTE)
+
+    SALOME_ACCUMULATE_HEADERS(_tbb_inc)
+    SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${_tbb_lib})
+  ENDIF()
 ENDIF()
\ No newline at end of file