forked from oneapi-src/oneDNN
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_types.cmake
81 lines (69 loc) · 3.61 KB
/
build_types.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#===============================================================================
# Copyright 2020-2021 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#===============================================================================
# Manage custom build types
#===============================================================================
if(Build_types_cmake_included)
return()
endif()
set(Build_types_cmake_included true)
# Use flags of the Release build type but filter out the NDEBUG flag
set(REGEX_REMOVE_DNDEBUG "[/-][D][ ]*NDEBUG")
string(REGEX REPLACE "${REGEX_REMOVE_DNDEBUG}" ""
_CMAKE_CXX_FLAGS_RELWITHASSERT "${CMAKE_CXX_FLAGS_RELEASE}")
string(REGEX REPLACE "${REGEX_REMOVE_DNDEBUG}" ""
_CMAKE_C_FLAGS_RELWITHASSERT "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELWITHASSERT "${_CMAKE_CXX_FLAGS_RELWITHASSERT}" CACHE STRING
"Flags used by the C++ compiler during RelWithAssert builds." FORCE)
set(CMAKE_C_FLAGS_RELWITHASSERT "${_CMAKE_C_FLAGS_RELWITHASSERT}" CACHE STRING
"Flags used by the C compiler during RelWithAssert builds." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERT "${CMAKE_EXE_LINKER_FLAGS_RELEASE}" CACHE STRING
"Flags used for linking binaries during RelWithAssert builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHASSERT "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}" CACHE STRING
"Flags used by the shared libraries linker during RelWithAssert builds." FORCE)
mark_as_advanced(
CMAKE_CXX_FLAGS_RELWITHASSERT
CMAKE_C_FLAGS_RELWITHASSERT
CMAKE_EXE_LINKER_FLAGS_RELWITHASSERT
CMAKE_SHARED_LINKER_FLAGS_RELWITHASSERT)
# Release build with linking to the Debug Runtime
if(CMAKE_BASE_NAME STREQUAL "icx")
string(REGEX REPLACE "\\/MD" "/MDd"
_CMAKE_CXX_FLAGS_RELWITHMDD "${CMAKE_CXX_FLAGS_RELEASE}")
string(REGEX REPLACE "\\/MD" "/MDd"
_CMAKE_C_FLAGS_RELWITHMDD "${CMAKE_C_FLAGS_RELEASE}")
else()
string(REGEX REPLACE "--dependent-lib=msvcrt" "--dependent-lib=msvcrtd"
_CMAKE_CXX_FLAGS_RELWITHMDD "${CMAKE_CXX_FLAGS_RELEASE}")
string(REGEX REPLACE "--dependent-lib=msvcrt" "--dependent-lib=msvcrtd"
_CMAKE_C_FLAGS_RELWITHMDD "${CMAKE_C_FLAGS_RELEASE}")
endif()
string(REGEX REPLACE "NDEBUG" "_DEBUG"
_CMAKE_CXX_FLAGS_RELWITHMDD "${_CMAKE_CXX_FLAGS_RELWITHMDD}")
string(REGEX REPLACE "NDEBUG" "_DEBUG"
_CMAKE_C_FLAGS_RELWITHMDD "${_CMAKE_C_FLAGS_RELWITHMDD}")
set(CMAKE_C_FLAGS_RELWITHMDD "${_CMAKE_C_FLAGS_RELWITHMDD}" CACHE STRING
"Flags used by the C compiler during RelWithMdd build" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHMDD "${_CMAKE_CXX_FLAGS_RELWITHMDD}"
CACHE STRING "Flags used by the C++ compiler during RelWithMdd build." FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELWITHMDD "${CMAKE_EXE_LINKER_FLAGS_RELEASE}"
CACHE STRING "Flags used for linking binaries during RelWithMdd builds." FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHMDD "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}"
CACHE STRING "Flags used by the shared libraries linker during RelWithMdd builds." FORCE)
mark_as_advanced(
CMAKE_CXX_FLAGS_RELWITHMDD
CMAKE_C_FLAGS_RELWITHMDD
CMAKE_EXE_LINKER_FLAGS_RELWITHMDD
CMAKE_SHARED_LINKER_FLAGS_RELWITHMDD)