1 # Copyright (c) 2016 Intel Corporation
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
16 # ========================================= Name / Output settings =====================================
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}")
22 # =========================================== Compiler options =========================================
23 intel_config_flag_apply_settings(CompilerOptions CMAKE_CXX_FLAGS ALL_PATTERN ""
29 intel_config_flag_apply_settings(CompilerOptions CMAKE_CXX_FLAGS ALL_PATTERN ""
31 "-Wno-error=conversion-null"
32 "-Wno-error=type-limits"
33 "-Wno-error=unused-variable"
37 # ========================================= Source/Header files ========================================
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"
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"
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"
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"
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"
77 file(GLOB __CLDNN_Sources__natvis
78 "${CMAKE_CURRENT_SOURCE_DIR}/float16.natvis"
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")
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}
98 # =============================================== Filters ==============================================
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})
106 # ===================================== Include/Link directories =======================================
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}"
120 # =================================== Link targets and dependencies ====================================
123 add_executable("${CLDNN_BUILD__PROJ}"
124 ${__CLDNN_AllSources}
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}")
130 # Set library dependencies
131 target_link_libraries("${CLDNN_BUILD__PROJ}"
132 "${CLDNN_BUILD__PROJ__clDNN}"
136 target_link_libraries("${CLDNN_BUILD__PROJ}" setupapi)
137 elseif((NOT ANDROID) AND (UNIX))
138 target_link_libraries("${CLDNN_BUILD__PROJ}" pthread)
140 target_link_libraries("${CLDNN_BUILD__PROJ}" ${CLDNN__SYSTEM_LINK_LIBRARIES} OpenCL)
142 # =================================== Custom pre- and post-steps =======================================
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..."
152 # ======================================================================================================