Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / mkl-dnn / cmake / MKL.cmake
index bb02059..554bbd3 100644 (file)
@@ -22,6 +22,8 @@ if(MKL_cmake_included)
     return()
 endif()
 set(MKL_cmake_included true)
+include("cmake/utils.cmake")
+include("cmake/options.cmake")
 
 # set SKIP_THIS_MKL to true if given configuration is not supported
 function(maybe_skip_this_mkl LIBNAME)
@@ -168,33 +170,18 @@ function(detect_mkl LIBNAME)
     string(FIND "${MKLLIBPATH}" ${CMAKE_CURRENT_SOURCE_DIR}/external __idx)
     if(${__idx} EQUAL 0)
         if(WIN32)
-            if(MINGW)
-                # We need to install *.dll into bin/ instead of lib/.
-                install(PROGRAMS ${MKLDLL} DESTINATION bin)
-            else()
-                install(PROGRAMS ${MKLDLL} DESTINATION lib)
-            endif()
+            install(PROGRAMS ${MKLDLL} ${MKLIOMP5DLL}
+                DESTINATION ${CMAKE_INSTALL_BINDIR})
         else()
-            install(PROGRAMS ${MKLLIB} DESTINATION lib)
-        endif()
-        if(MKLIOMP5LIB)
-            if(WIN32)
-                if(MINGW)
-                    # We need to install *.dll into bin/ instead of lib/.
-                    install(PROGRAMS ${MKLIOMP5DLL} DESTINATION bin)
-                else()
-                    install(PROGRAMS ${MKLIOMP5DLL} DESTINATION lib)
-                endif()
-            else()
-                install(PROGRAMS ${MKLIOMP5LIB} DESTINATION lib)
-            endif()
+            install(PROGRAMS ${MKLLIB} ${MKLIOMP5LIB}
+                DESTINATION ${CMAKE_INSTALL_LIBDIR})
         endif()
     endif()
 
     if(WIN32)
         # Add paths to DLL to %PATH% on Windows
         get_filename_component(MKLDLLPATH "${MKLDLL}" PATH)
-        set(CTESTCONFIG_PATH "${CTESTCONFIG_PATH}\;${MKLDLLPATH}")
+        append_to_windows_path_list(CTESTCONFIG_PATH "${MKLDLLPATH}")
         set(CTESTCONFIG_PATH "${CTESTCONFIG_PATH}" PARENT_SCOPE)
     endif()
 
@@ -203,6 +190,11 @@ function(detect_mkl LIBNAME)
     set(MKLINC ${MKLINC} PARENT_SCOPE)
     set(MKLLIB "${MKLLIB}" PARENT_SCOPE)
     set(MKLDLL "${MKLDLL}" PARENT_SCOPE)
+    if(LIBNAME MATCHES "mklml")
+        set(MKLDNN_USES_MKL "MKLML:SHARED" PARENT_SCOPE)
+    else()
+        set(MKLDNN_USES_MKL "FULL:SHARED" PARENT_SCOPE)
+    endif()
 
     set(MKLIOMP5LIB "${MKLIOMP5LIB}" PARENT_SCOPE)
     set(MKLIOMP5DLL "${MKLIOMP5DLL}" PARENT_SCOPE)
@@ -232,20 +224,25 @@ function(set_static_mkl_libs libpath)
     set(MKLLIB "${MKLLIB}" PARENT_SCOPE)
 endfunction()
 
+set(MKLDNN_USES_MKL "")
 detect_mkl("mklml_intel")
 detect_mkl("mklml_gnu")
 detect_mkl("mklml")
 detect_mkl("mkl_rt")
-if (MKLDNN_USE_MKL STREQUAL "FULL:STATIC" AND HAVE_MKL)
-    set(MKLDLL "")
-    get_filename_component(MKLLIBPATH "${MKLLIB}" PATH)
-    set_static_mkl_libs(${MKLLIBPATH})
-endif ()
 
 if(HAVE_MKL)
+    if (MKLDNN_USE_MKL STREQUAL "FULL:STATIC")
+        set(MKLDLL "")
+        get_filename_component(MKLLIBPATH "${MKLLIB}" PATH)
+        set_static_mkl_libs(${MKLLIBPATH})
+        list(APPEND EXTRA_STATIC_LIBS ${MKLLIB})
+        set(MKLDNN_USES_MKL "FULL:STATIC")
+    else()
+        list(APPEND EXTRA_SHARED_LIBS ${MKLLIB})
+    endif()
+
     add_definitions(-DUSE_MKL -DUSE_CBLAS)
     include_directories(AFTER ${MKLINC})
-    list(APPEND mkldnn_LINKER_LIBS ${MKLLIB})
 
     set(MSG "Intel(R) MKL:")
     message(STATUS "${MSG} include ${MKLINC}")