-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDefaultCompilerOptions.cmake
36 lines (31 loc) · 1022 Bytes
/
DefaultCompilerOptions.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
# Define default compiler options for Clang, GCC and MSVC.
# Clang specific options
set(DEFAULT_CLANG_OPTIONS
-fcolor-diagnostics
)
# GCC specific options
set(DEFAULT_GCC_OPTIONS
-fdiagnostics-color
)
# MSVC specific options
set(DEFAULT_MSVC_OPTIONS
/permissive-
)
# Clang-cl specific options
set(DEFAULT_CLANG_CL_OPTIONS
${DEFAULT_MSVC_OPTIONS}
/EHsc # enable exception handling
)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
# Clang
set(DEFAULT_COMPILER_OPTIONS ${DEFAULT_CLANG_OPTIONS})
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
# Clang-cl
set(DEFAULT_COMPILER_OPTIONS ${DEFAULT_CLANG_CL_OPTIONS})
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# GCC
set(DEFAULT_COMPILER_OPTIONS ${DEFAULT_GCC_OPTIONS})
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
# MSVC
set(DEFAULT_COMPILER_OPTIONS ${DEFAULT_MSVC_OPTIONS})
endif ()