Publishing 2019 R3 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / CMakeLists.txt
1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
3 #
4
5 cmake_policy(SET CMP0054 NEW)
6
7 set(TARGET_NAME InferenceEngineUnitTests)
8
9 #rpath enabled for unit tests only
10 SET (CMAKE_SKIP_RPATH OFF)
11
12 # collect sources
13
14 file(GLOB
15         TEST_SRC
16         graph_tools/*.cpp
17         http_client/*.cpp
18         inference_engine_tests/*.cpp
19         inference_engine_tests/cpp_interfaces/*.cpp
20         inference_engine_tests/normalization/*.cpp
21         cnn_network/*.cpp
22         builders/*.cpp
23         # TODO: apeskov: Please fix issue CVS
24         # shape_infer/*.cpp
25         shape_infer/built-in/*.cpp
26         topology_verification_tests/*.cpp
27         stress_tests/*.cpp
28         cpp_api/*.cpp
29         )
30
31 if (ENABLE_GNA)
32     file(GLOB
33             GNA_TESTS
34             engines/gna/*cpp
35             )
36     list(APPEND TEST_SRC ${GNA_TESTS})
37     source_group("gna" FILES ${GNA_TESTS})
38
39     find_package(libGNA)
40     include_directories(${libGNA_INCLUDE_DIRS})
41
42     set (GNA_TEST_ENGINE GNAPlugin_test_static)
43 endif()
44
45 if (ENABLE_MKL_DNN)
46     if (GEMM STREQUAL "MKL")
47         add_definitions(-DUSE_MKL)
48     endif ()
49     file(GLOB
50             MKLDNN_TESTS
51             engines/mkldnn/*.cpp
52             engines/mkldnn/normalizer/*.cpp
53             engines/mkldnn/graph/layers/extensions/*.cpp
54             engines/mkldnn/graph/layers/internal/*.cpp
55             engines/mkldnn/graph/structure/*.cpp
56             engines/mkldnn/graph/*.cpp)
57     file(GLOB
58             MKLDNN_TESTS_INCLUDE engines/mkldnn/graph/*.hpp)
59
60     include_directories(
61             ${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/include
62             engines/mkldnn/graph
63             ${CMAKE_BINARY_DIR}/include/)
64
65     source_group("mkldnn" FILES ${MKLDNN_TESTS} ${MKLDNN_TESTS_INCLUDE})
66 endif ()
67
68 file(GLOB
69         TEST_INCLUDE
70         shape_infer/*.hpp)
71
72 source_group("src" FILES ${TEST_SRC})
73 source_group("include" FILES ${TEST_INCLUDE})
74
75 # create target
76
77 add_executable(${TARGET_NAME} ${TEST_SRC} ${TEST_INCLUDE} ${MKLDNN_TESTS} ${MKLDNN_TESTS_INCLUDE} ${DLIA_TESTS})
78 set_ie_threading_interface_for(${TARGET_NAME})
79
80 target_include_directories(${TARGET_NAME} PRIVATE
81         ${IE_MAIN_SOURCE_DIR}/src/mkldnn_plugin
82         ${IE_MAIN_SOURCE_DIR}/src/gna_plugin
83         ${IE_MAIN_SOURCE_DIR}/src/extension
84         ${IE_MAIN_SOURCE_DIR}/src/extension/common
85         ${IE_MAIN_SOURCE_DIR}/thirdparty/ngraph/src
86         "${CMAKE_CURRENT_SOURCE_DIR}/mocks")
87
88 set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
89
90 ## Mock macros doesn't use "override" specificator
91 target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:Clang>: -Wno-inconsistent-missing-override >)
92 target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:AppleClang>: -Wno-inconsistent-missing-override >)
93
94 if (ENABLE_MYRIAD)
95     target_link_libraries(${TARGET_NAME} PRIVATE mvnc vpu_graph_transformer_test_static)
96 endif ()
97
98 target_link_libraries(${TARGET_NAME} PRIVATE
99     gtest
100     gflags
101     gtest_main
102     gmock
103     ngraph
104     inference_engine_s
105     helpers
106     ${CMAKE_DL_LIBS}
107     ${GNA_TEST_ENGINE})
108
109 add_dependencies(${TARGET_NAME} ie_cpu_extension)
110
111 if (ENABLE_MKL_DNN)
112     target_link_libraries(${TARGET_NAME} PRIVATE
113             test_MKLDNNPlugin
114             mkldnn)
115 endif ()
116
117 if (ENABLE_DLIA)
118     target_link_libraries(${TARGET_NAME} PRIVATE dliaPluginIOTransformations)
119 endif ()
120
121 add_test(NAME ${TARGET_NAME}
122         COMMAND ${TARGET_NAME})
123
124 add_dependencies(${TARGET_NAME} mock_engine)