Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / cmake / os_flags.cmake
1 # Copyright (C) 2018-2019 Intel Corporation
2 #
3 # SPDX-License-Identifier: Apache-2.0
4 #
5
6 if (WIN32)
7     set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS)
8     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SCL_SECURE_NO_WARNINGS")
9     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") #no asynchronous structured exception handling
10     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
11
12     set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Z7")
13     set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Z7")
14
15     if(ENABLE_DEBUG_SYMBOLS)
16         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Z7")
17         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Z7")
18
19         set(DEBUG_SYMBOLS_LINKER_FLAGS "/DEBUG")
20         if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
21             # Keep default /OPT values. See /DEBUG reference for details.
22             set(DEBUG_SYMBOLS_LINKER_FLAGS "${DEBUG_SYMBOLS_LINKER_FLAGS} /OPT:REF /OPT:ICF")
23         endif()
24
25         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${DEBUG_SYMBOLS_LINKER_FLAGS}")
26         set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${DEBUG_SYMBOLS_LINKER_FLAGS}")
27         set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${DEBUG_SYMBOLS_LINKER_FLAGS}")
28     endif()
29
30 else()
31     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=return-type ")
32     if (APPLE)
33         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument")
34     elseif(UNIX)
35         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized -Winit-self")
36         if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
37             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch")
38         else()
39             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmaybe-uninitialized")
40         endif()
41     endif()
42 endif()