blob: b94849747ef7b0875b70082d71d806ade813f2d8 (
plain)
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
|
function(target_flag_rtti_msvc TARGET_NAME ENABLED)
if(ENABLED)
target_compile_options(${TARGET_NAME} PRIVATE /GR)
else()
target_compile_options(${TARGET_NAME} PRIVATE /GR-)
endif()
endfunction()
function(target_flag_rtti_gcc TARGET_NAME ENABLED)
if(ENABLED)
target_compile_options(${TARGET_NAME} PRIVATE -frtti)
else()
target_compile_options(${TARGET_NAME} PRIVATE -fno-rtti)
endif()
endfunction()
function(target_flag_rtti TARGET_NAME ENABLED)
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_flag_rtti_msvc(${TARGET_NAME} ${ENABLED})
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC")
target_flag_rtti_msvc(${TARGET_NAME} ${ENABLED})
elseif(CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "GNU")
target_flag_rtti_gcc(${TARGET_NAME} ${ENABLED})
endif()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
target_flag_rtti_gcc(${TARGET_NAME} ${ENABLED})
else()
message(FATAL "target_flag_rtti(): Unknown compiler ${CMAKE_CXX_COMPILER_ID}")
endif()
endfunction()
|