|
function(llama_add_compile_flags) |
|
if (LLAMA_FATAL_WARNINGS) |
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
|
list(APPEND C_FLAGS -Werror) |
|
list(APPEND CXX_FLAGS -Werror) |
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") |
|
add_compile_options(/WX) |
|
endif() |
|
endif() |
|
|
|
if (LLAMA_ALL_WARNINGS) |
|
if (NOT MSVC) |
|
list(APPEND C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes |
|
-Werror=implicit-int -Werror=implicit-function-declaration) |
|
|
|
list(APPEND CXX_FLAGS -Wmissing-declarations -Wmissing-noreturn) |
|
|
|
list(APPEND WARNING_FLAGS -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function) |
|
|
|
list(APPEND C_FLAGS ${WARNING_FLAGS}) |
|
list(APPEND CXX_FLAGS ${WARNING_FLAGS}) |
|
|
|
ggml_get_flags(${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}) |
|
|
|
add_compile_options("$<$<COMPILE_LANGUAGE:C>:${C_FLAGS};${GF_C_FLAGS}>" |
|
"$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAGS};${GF_CXX_FLAGS}>") |
|
else() |
|
|
|
set(C_FLAGS "" PARENT_SCOPE) |
|
set(CXX_FLAGS "" PARENT_SCOPE) |
|
endif() |
|
endif() |
|
endfunction() |
|
|