Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / mkldnn_plugin / CMakeLists.txt
1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
3 #
4
5 set(TARGET_NAME "MKLDNNPlugin")
6
7 if (UNIX AND NOT APPLE)
8     set(OS_SPECIFIC_SRC ${CMAKE_CURRENT_SOURCE_DIR}/mkldnn/os/lin/*.cpp)
9 endif()
10
11 file(GLOB SOURCES
12         ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
13         ${CMAKE_CURRENT_SOURCE_DIR}/mkldnn/*.cpp
14         ${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cpp
15         ${CMAKE_CURRENT_SOURCE_DIR}/nodes/*.cpp
16         ${OS_SPECIFIC_SRC}
17 )
18
19 file(GLOB HEADERS
20         ${CMAKE_CURRENT_SOURCE_DIR}/*.h
21         ${CMAKE_CURRENT_SOURCE_DIR}/mkldnn/*.h
22         ${CMAKE_CURRENT_SOURCE_DIR}/mkldnn/*.hpp
23         ${CMAKE_CURRENT_SOURCE_DIR}/utils/*.h
24         ${CMAKE_CURRENT_SOURCE_DIR}/nodes/*.h
25 )
26
27 addVersionDefines(mkldnn_plugin.cpp CI_BUILD_NUMBER MKL_VERSION)
28
29 add_definitions(-DIMPLEMENT_INFERENCE_ENGINE_PLUGIN)
30
31 include_directories(
32         ${IE_MAIN_SOURCE_DIR}/include
33         ${IE_MAIN_SOURCE_DIR}/src/inference_engine
34         ${CMAKE_CURRENT_SOURCE_DIR}
35         ${CMAKE_CURRENT_SOURCE_DIR}/mkldnn
36         ${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/src/common
37         ${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/src/cpu
38         ${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/include
39         ${CMAKE_BINARY_DIR}/include/
40 )
41
42 if (GEMM STREQUAL "MKL")
43     log_rpath_from_dir(MKL "${MKL}/lib")
44 endif()
45
46 add_library(${TARGET_NAME} SHARED ${SOURCES} ${HEADERS})
47 set_ie_threading_interface_for(${TARGET_NAME})
48
49 if (THREADING STREQUAL "TBB")
50     set(MKLDNN_THR MKLDNN_THR_TBB)
51 elseif (THREADING STREQUAL "OMP")
52     set(MKLDNN_THR MKLDNN_THR_OMP)
53 else()
54     set(MKLDNN_THR MKLDNN_THR_SEQ)
55 endif()
56
57 target_compile_definitions(${TARGET_NAME} PUBLIC -DMKLDNN_THR=${MKLDNN_THR})
58 target_link_libraries(${TARGET_NAME} PRIVATE inference_engine ${INTEL_ITT_LIBS} mkldnn)
59
60 set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
61
62 add_library(test_${TARGET_NAME} STATIC ${SOURCES} ${HEADERS})
63 set_ie_threading_interface_for(test_${TARGET_NAME})
64
65 target_compile_definitions(test_${TARGET_NAME} PUBLIC -DMKLDNN_THR=${MKLDNN_THR})
66 target_link_libraries(test_${TARGET_NAME} PRIVATE inference_engine_s mkldnn)
67
68 set_target_properties(test_${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME test_${TARGET_NAME})
69
70 add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})