1
0

common.cmake 1.3 KB

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