common.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. function(llama_add_compile_flags)
  2. if (LLAMA_FATAL_WARNINGS)
  3. if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  4. list(APPEND C_FLAGS -Werror)
  5. list(APPEND CXX_FLAGS -Werror)
  6. elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
  7. add_compile_options(/WX)
  8. endif()
  9. endif()
  10. if (LLAMA_ALL_WARNINGS)
  11. if (NOT MSVC)
  12. list(APPEND C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes
  13. -Werror=implicit-int -Werror=implicit-function-declaration)
  14. list(APPEND CXX_FLAGS -Wmissing-declarations -Wmissing-noreturn)
  15. list(APPEND WARNING_FLAGS -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function)
  16. list(APPEND C_FLAGS ${WARNING_FLAGS})
  17. list(APPEND CXX_FLAGS ${WARNING_FLAGS})
  18. ggml_get_flags(${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})
  19. add_compile_options("$<$<COMPILE_LANGUAGE:C>:${C_FLAGS};${GF_C_FLAGS}>"
  20. "$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAGS};${GF_CXX_FLAGS}>")
  21. else()
  22. # todo : msvc
  23. set(C_FLAGS "" PARENT_SCOPE)
  24. set(CXX_FLAGS "" PARENT_SCOPE)
  25. endif()
  26. endif()
  27. endfunction()