Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / tests / CMakeLists.txt
1 # Copyright (c) 2016 Intel Corporation
2
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6
7 #      http://www.apache.org/licenses/LICENSE-2.0
8
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15
16 # ========================================= Name / Output settings =====================================
17
18 set(CLDNN_BUILD__PROJ             "clDNN_unit_tests")
19 set(CLDNN_BUILD__PROJ_LABEL       "${CLDNN_BUILD__PROJ}")
20 set(CLDNN_BUILD__PROJ_OUTPUT_NAME "${CLDNN_BUILD__PROJ}${CLDNN__OUT_CPU_SUFFIX}")
21
22 # =========================================== Compiler options =========================================
23 intel_config_flag_apply_settings(CompilerOptions CMAKE_CXX_FLAGS ALL_PATTERN ""
24     SET
25       WarnLevel3
26       StandardCxx11
27   )
28 if (NOT MSVC)
29   intel_config_flag_apply_settings(CompilerOptions CMAKE_CXX_FLAGS ALL_PATTERN ""
30       SET_RAW
31         "-Wno-error=conversion-null"
32         "-Wno-error=type-limits"
33         "-Wno-error=unused-variable"
34     )
35 endif ()
36
37 # ========================================= Source/Header files ========================================
38
39 set(__CLDNN_Label__main                "")
40 file(GLOB __CLDNN_Sources__main
41     "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
42     "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp"
43     "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
44   )
45
46 set(__CLDNN_Directory__test_cases      "${CMAKE_CURRENT_SOURCE_DIR}/test_cases")
47 set(__CLDNN_Label__test_cases          "test cases")
48 file(GLOB __CLDNN_Sources__test_cases
49     "${__CLDNN_Directory__test_cases}/*.h"
50     "${__CLDNN_Directory__test_cases}/*.hpp"
51     "${__CLDNN_Directory__test_cases}/*.cpp"
52   )
53
54 set(__CLDNN_Directory__test_utils      "${CMAKE_CURRENT_SOURCE_DIR}/test_utils")
55 set(__CLDNN_Label__test_utils          "test utils")
56 file(GLOB __CLDNN_Sources__test_utils
57     "${__CLDNN_Directory__test_utils}/*.h"
58     "${__CLDNN_Directory__test_utils}/*.hpp"
59     "${__CLDNN_Directory__test_utils}/*.cpp"
60   )
61
62 set(__CLDNN_Directory__module_tests      "${CMAKE_CURRENT_SOURCE_DIR}/module_tests")
63 set(__CLDNN_Label__module_tests          "module tests")
64 file(GLOB __CLDNN_Sources__module_tests
65     "${__CLDNN_Directory__module_tests}/*.h"
66     "${__CLDNN_Directory__module_tests}/*.hpp"
67     "${__CLDNN_Directory__module_tests}/*.cpp"
68   )
69
70 set(__CLDNN_Directory__gtest           "${CLDNN__GTEST_DIR}")
71 set(__CLDNN_Label__gtest               "google test framework")
72 file(GLOB __CLDNN_Sources__gtest
73     "${__CLDNN_Directory__gtest}/*.cc"
74   )
75   
76 if (MSVC)
77   file(GLOB __CLDNN_Sources__natvis
78     "${CMAKE_CURRENT_SOURCE_DIR}/float16.natvis"
79   )
80 endif()
81
82 set(__CLDNN_Directory__ks_main           "${CLDNN__KERNEL_SELECTOR_DIR}")
83 set(__CLDNN_Directory__ks_core           "${CLDNN__KERNEL_SELECTOR_DIR}/core")
84 set(__CLDNN_Directory__ks_common         "${CLDNN__KERNEL_SELECTOR_DIR}/common")
85 set(__CLDNN_Directory__ks_core_common    "${__CLDNN_Directory__ks_core}/common")
86 set(__CLDNN_Directory__ks_actual_kernels "${__CLDNN_Directory__ks_core}/actual_kernels")  
87 set(__CLDNN_Directory__ks_cache          "${__CLDNN_Directory__ks_core}/cache")
88
89 set(__CLDNN_AllSources
90     ${__CLDNN_Sources__main}
91     ${__CLDNN_Sources__test_cases}
92     ${__CLDNN_Sources__test_utils}
93     ${__CLDNN_Sources__module_tests}
94     ${__CLDNN_Sources__gtest}
95     ${__CLDNN_Sources__natvis}
96   )
97
98 # =============================================== Filters ==============================================
99
100 source_group("${__CLDNN_Label__main}"         FILES ${__CLDNN_Sources__main})
101 source_group("${__CLDNN_Label__test_cases}"   FILES ${__CLDNN_Sources__test_cases})
102 source_group("${__CLDNN_Label__test_utils}"   FILES ${__CLDNN_Sources__test_utils})
103 source_group("${__CLDNN_Label__module_tests}" FILES ${__CLDNN_Sources__module_tests})
104 source_group("${__CLDNN_Label__gtest}"        FILES ${__CLDNN_Sources__gtest})
105
106 # ===================================== Include/Link directories =======================================
107
108 include_directories(
109     "${CLDNN__MAIN_DIR}"
110     "${CLDNN__MAIN_DIR}/src"
111     "${CMAKE_CURRENT_SOURCE_DIR}"
112     "${__CLDNN_Directory__test_utils}"
113     "${CLDNN__GTEST_DIR}"
114     "${__CLDNN_Directory__ks_core}"
115     "${__CLDNN_Directory__ks_core}/common"
116     "${__CLDNN_Directory__ks_actual_kernels}"
117     "${__CLDNN_Directory__ks_common}"
118   )
119
120 # =================================== Link targets and dependencies ====================================
121
122 # Tests executable.
123 add_executable("${CLDNN_BUILD__PROJ}"
124     ${__CLDNN_AllSources}
125   )
126 set_property(TARGET "${CLDNN_BUILD__PROJ}" PROPERTY PROJECT_LABEL "${CLDNN_BUILD__PROJ_LABEL}")
127 set_property(TARGET "${CLDNN_BUILD__PROJ}" PROPERTY OUTPUT_NAME   "${CLDNN_BUILD__PROJ_OUTPUT_NAME}")
128
129
130 # Set library dependencies
131 target_link_libraries("${CLDNN_BUILD__PROJ}"
132     "${CLDNN_BUILD__PROJ__clDNN}"
133   )
134
135 if(WIN32)
136   target_link_libraries("${CLDNN_BUILD__PROJ}" setupapi)
137 elseif((NOT ANDROID) AND (UNIX))
138   target_link_libraries("${CLDNN_BUILD__PROJ}" pthread)
139 endif()
140 target_link_libraries("${CLDNN_BUILD__PROJ}" ${CLDNN__SYSTEM_LINK_LIBRARIES} OpenCL)
141
142 # =================================== Custom pre- and post-steps =======================================
143
144 if(CLDNN__RUN_TESTS)
145   add_custom_command(TARGET "${CLDNN_BUILD__PROJ}" POST_BUILD
146       WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
147       COMMAND "${CLDNN_BUILD__PROJ}"
148       COMMENT "Executing tests..."
149     )
150 endif()
151
152 # ======================================================================================================