--- oneTBB-2020.2/cmake/TBBInstallConfig.cmake.orig	2020-05-06 13:57:21.567903800 +0300
+++ oneTBB-2020.2/cmake/TBBInstallConfig.cmake	2020-05-06 14:00:04.566313500 +0300
@@ -111,9 +111,9 @@
         # Expand TBB_LIB_REL_PATH here in IMPORTED_IMPLIB property and
         # redefine it with TBB_BIN_REL_PATH value to properly fill IMPORTED_LOCATION property in TBBConfig.cmake.in template.
         set(TBB_IMPLIB_RELEASE "
-                                      IMPORTED_IMPLIB_RELEASE \"\${CMAKE_CURRENT_LIST_DIR}/${TBB_LIB_REL_PATH}/\${_tbb_component}.lib\"")
+                                      IMPORTED_IMPLIB_RELEASE \"\${CMAKE_CURRENT_LIST_DIR}/${TBB_LIB_REL_PATH}/lib\${_tbb_component}.dll.a\"")
         set(TBB_IMPLIB_DEBUG "
-                                      IMPORTED_IMPLIB_DEBUG \"\${CMAKE_CURRENT_LIST_DIR}/${TBB_LIB_REL_PATH}/\${_tbb_component}_debug.lib\"")
+                                      IMPORTED_IMPLIB_DEBUG \"\${CMAKE_CURRENT_LIST_DIR}/${TBB_LIB_REL_PATH}/lib\${_tbb_component}_debug.dll.a\"")
         set(TBB_LIB_REL_PATH ${TBB_BIN_REL_PATH})
     else()
         message(FATAL_ERROR "Unsupported OS name: ${tbb_system_name}")
--- oneTBB-2020.2/cmake/TBBMakeConfig.cmake.orig	2020-05-06 13:59:23.701848600 +0300
+++ oneTBB-2020.2/cmake/TBBMakeConfig.cmake	2020-05-06 14:01:43.382845200 +0300
@@ -91,15 +91,15 @@
 
         if (tbb_MK_CONFIG_FOR_SOURCE)
             set(TBB_IMPLIB_RELEASE "
-                                  IMPORTED_IMPLIB_RELEASE \"${tbb_MK_TBB_RELEASE_DIR}/\${_tbb_component}.lib\"")
+                                  IMPORTED_IMPLIB_RELEASE \"${tbb_MK_TBB_RELEASE_DIR}/lib\${_tbb_component}.dll.a\"")
             set(TBB_IMPLIB_DEBUG "
-                                  IMPORTED_IMPLIB_DEBUG \"${tbb_MK_TBB_DEBUG_DIR}/\${_tbb_component}_debug.lib\"")
+                                  IMPORTED_IMPLIB_DEBUG \"${tbb_MK_TBB_DEBUG_DIR}/lib\${_tbb_component}_debug.dll.a\"")
         else()
             set(TBB_IMPLIB_RELEASE "
-                                  IMPORTED_IMPLIB_RELEASE \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}.lib\"")
+                                  IMPORTED_IMPLIB_RELEASE \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/lib\${_tbb_component}.dll.a\"")
             set(TBB_IMPLIB_DEBUG "
-                                  IMPORTED_IMPLIB_DEBUG \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/\${_tbb_component}_debug.lib\"")
+                                  IMPORTED_IMPLIB_DEBUG \"\${_tbb_root}/lib/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}/lib\${_tbb_component}_debug.dll.a\"")
         endif()
 
         # Note: multiline variable
