@@ -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
113117endfunction ()
0 commit comments