1 #===============================================================================
2 # Copyright 2016-2018 Intel Corporation
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #===============================================================================
17 option(WITH_TEST "include tests" ON)
23 cmake_policy(SET CMP0065 NEW)
26 # propagate TEST specific flags
27 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_TEST_CCXX_FLAGS}")
28 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_TEST_CCXX_FLAGS}")
30 set(SUPPRESS_SOME_WARNINGS)
31 if(UNIX OR APPLE OR MINGW)
32 # workaround for Intel Compiler 16.0 that doesn't suppress warning on
33 # deprecation with "-Wno-deprecated" compiler flag
34 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" AND
35 CMAKE_CXX_COMPILER_VERSION VERSION_LESS "17.0")
36 set(SUPPRESS_SOME_WARNINGS "-diag-disable:1478")
38 set(SUPPRESS_SOME_WARNINGS "-Wno-deprecated-declarations")
40 elseif(WIN32 AND NOT MINGW)
41 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
42 # 1478: deprecated functions
43 set(SUPPRESS_SOME_WARNINGS "/Qdiag-disable:1478")
45 # c4244: conversion with possible loss of data
46 # c4996: unsafe / deprecated functions
47 set(SUPPRESS_SOME_WARNINGS "/wd4996 /wd4244")
50 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SUPPRESS_SOME_WARNINGS}")
51 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SUPPRESS_SOME_WARNINGS}")
53 #add_executable(api-check-c api_check.c)
54 #target_link_libraries(api-check-c ${LIB_NAME} ${EXTRA_LIBS})
55 #add_test(api-check-c api-check-c)
57 # add_executable(simple_convolution-c simple_convolution.c)
58 # set_property(TARGET simple_convolution-c PROPERTY C_STANDARD 99)
59 # target_link_libraries(simple_convolution-c ${LIB_NAME} ${EXTRA_LIBS})
60 # add_test(simple_convolution-c simple_convolution-c)
62 add_executable(api-c api.c)
63 set_property(TARGET api-c PROPERTY C_STANDARD 99)
64 target_link_libraries(api-c ${LIB_NAME} ${EXTRA_LIBS})
68 set_property(TEST api-c PROPERTY ENVIRONMENT "PATH=${CTESTCONFIG_PATH}")
69 configure_file(${CMAKE_SOURCE_DIR}/config_template.vcxproj.user
70 api-c.vcxproj.user @ONLY)
73 if(UNIX OR APPLE OR MINGW)
74 set(test_c_symbols "${CMAKE_CURRENT_BINARY_DIR}/test_c_symbols.c")
75 add_executable(test_c_symbols-c ${test_c_symbols})
77 OUTPUT ${test_c_symbols}
78 COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/generate_c_symbols_refs.sh
79 ${CMAKE_CURRENT_SOURCE_DIR}/.. ${test_c_symbols}
81 target_link_libraries(test_c_symbols-c ${LIB_NAME} ${EXTRA_LIBS})
82 add_test(test_c_symbols-c test_c_symbols-c)
84 configure_file(${CMAKE_SOURCE_DIR}/config_template.vcxproj.user
85 test_c_symbols-c.vcxproj.user @ONLY)
86 set_property(TEST test_c_symbols-c PROPERTY ENVIRONMENT "PATH=${CTESTCONFIG_PATH}")
89 # No Windows support for: test_c_symbols.c
92 add_subdirectory(gtests)
93 add_subdirectory(benchdnn)