Skip to content

Commit f1c0a93

Browse files
committed
cmake : add llama_get_flags and respect LLAMA_FATAL_WARNINGS
1 parent e908ace commit f1c0a93

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

cmake/common.cmake

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,39 @@
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+
127
function(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

Comments
 (0)