Skip to content

Commit 79dd950

Browse files
committed
fix: set the warnings based on the COMPILE_LANGUAGE
1 parent ac67aaf commit 79dd950

1 file changed

Lines changed: 21 additions & 17 deletions

File tree

src/CompilerWarnings.cmake

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -88,26 +88,30 @@ function(
8888
list(APPEND MSVC_WARNINGS /WX)
8989
endif()
9090

91-
if(NOT MSVC
92-
AND NOT
93-
CMAKE_CXX_COMPILER_ID
94-
MATCHES
95-
".*Clang"
96-
AND NOT
97-
CMAKE_CXX_COMPILER_ID
98-
STREQUAL
99-
"GNU")
100-
message(AUTHOR_WARNING "No compiler warnings set for '${CMAKE_CXX_COMPILER_ID}' compiler.")
91+
if(MSVC)
92+
set(PROJECT_WARNINGS_CXX ${MSVC_WARNINGS})
93+
elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
94+
set(PROJECT_WARNINGS_CXX ${CLANG_WARNINGS})
95+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
96+
set(PROJECT_WARNINGS_CXX ${GCC_WARNINGS})
97+
else()
98+
message(AUTHOR_WARNING "No compiler warnings set for CXX compiler: '${CMAKE_CXX_COMPILER_ID}'")
99+
# TODO support Intel compiler
101100
endif()
102101

102+
# use the same warning flags for C
103+
set(PROJECT_WARNINGS_C "${PROJECT_WARNINGS_CXX}")
104+
105+
set(PROJECT_WARNINGS_CUDA "${CUDA_WARNINGS}")
106+
103107
target_compile_options(
104108
${project_name}
105-
INTERFACE $<$<COMPILE_LANG_AND_ID:CXX,Clang>:${CLANG_WARNINGS}>
106-
$<$<COMPILE_LANG_AND_ID:C,Clang>:${CLANG_WARNINGS}>
107-
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:${GCC_WARNINGS}>
108-
$<$<COMPILE_LANG_AND_ID:C,GNU>:${GCC_WARNINGS}>
109-
$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:${MSVC_WARNINGS}>
110-
$<$<COMPILE_LANG_AND_ID:C,MSVC>:${MSVC_WARNINGS}>
111-
$<$<COMPILE_LANGUAGE:CUDA>:${CUDA_WARNINGS}>)
109+
INTERFACE
110+
# C++ warnings
111+
$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_WARNINGS_CXX}>
112+
# C warnings
113+
$<$<COMPILE_LANGUAGE:C>:${PROJECT_WARNINGS_C}>
114+
# Cuda warnings
115+
$<$<COMPILE_LANGUAGE:CUDA>:${PROJECT_WARNINGS_CUDA}>)
112116

113117
endfunction()

0 commit comments

Comments
 (0)