1+ function (llama_get_flags CCID CCVER)
2+     set (C_FLAGS "" )
3+     set (CXX_FLAGS  "" )
4+ 
5+     if  (CCID MATCHES  "Clang" )
6+         set (C_FLAGS   -Wunreachable-code-break -Wunreachable-code-return)
7+         set (CXX_FLAGS  -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
8+ 
9+         if  (
10+             (CCID STREQUAL  "Clang"       AND  CCVER VERSION_GREATER_EQUAL  3.8.0) OR 
11+             (CCID STREQUAL  "AppleClang"  AND  CCVER VERSION_GREATER_EQUAL  7.3.0)
12+         )
13+             list (APPEND  C_FLAGS -Wdouble-promotion)
14+         endif ()
15+     elseif  (CCID STREQUAL  "GNU" )
16+         set (C_FLAGS   -Wdouble-promotion)
17+         set (CXX_FLAGS  -Wno-array-bounds)
18+         if  (CCVER VERSION_GREATER_EQUAL  8.1.0)
19+             list (APPEND  CXX_FLAGS  -Wextra-semi)
20+         endif ()
21+     endif ()
22+ 
23+     set (GF_C_FLAGS   ${C_FLAGS}    PARENT_SCOPE)
24+     set (GF_CXX_FLAGS ${CXX_FLAGS}  PARENT_SCOPE)
25+ endfunction ()
26+ 
127function (llama_add_compile_flags)
28+     if  (LLAMA_FATAL_WARNINGS)
29+         if  (CMAKE_CXX_COMPILER_ID MATCHES  "GNU"  OR  CMAKE_CXX_COMPILER_ID MATCHES  "Clang" )
30+             list (APPEND  C_FLAGS   -Werror)
31+             list (APPEND  CXX_FLAGS  -Werror)
32+         elseif  (CMAKE_CXX_COMPILER_ID STREQUAL  "MSVC" )
33+             add_compile_options (/WX)
34+         endif ()
35+     endif ()
36+ 
237    if  (LLAMA_ALL_WARNINGS)
338        if  (NOT  MSVC )
439            list (APPEND  C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes
@@ -11,7 +46,7 @@ function(llama_add_compile_flags)
1146            list (APPEND  C_FLAGS   ${WARNING_FLAGS} )
1247            list (APPEND  CXX_FLAGS  ${WARNING_FLAGS} )
1348
14-             get_flags (${CMAKE_CXX_COMPILER_ID}  ${CMAKE_CXX_COMPILER_VERSION} )
49+             llama_get_flags (${CMAKE_CXX_COMPILER_ID}  ${CMAKE_CXX_COMPILER_VERSION} )
1550
1651            add_compile_options ("$<$<COMPILE_LANGUAGE:C>:${C_FLAGS} ;${GF_C_FLAGS} >" 
1752                                "$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAGS} ;${GF_CXX_FLAGS} >" )
0 commit comments