You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CompilerWarnings.cmake 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. CHECK_C_COMPILER_FLAG(-Wall SUPPORT_WALL)
  2. CHECK_C_COMPILER_FLAG(-Wextra SUPPORT_WEXTRA)
  3. CHECK_C_COMPILER_FLAG(-Wpointer-arith SUPPORT_WPOINTER)
  4. CHECK_C_COMPILER_FLAG(-Wno-unused-parameter SUPPORT_WPARAM)
  5. CHECK_C_COMPILER_FLAG(-Wno-unused-function SUPPORT_WFUNCTION)
  6. CHECK_C_COMPILER_FLAG(-Wno-strict-aliasing SUPPORT_WSTRICT_ALIASING)
  7. CHECK_C_COMPILER_FLAG(-Wunused-variable SUPPORT_WUNUSED_VAR)
  8. CHECK_C_COMPILER_FLAG(-Wno-pointer-sign SUPPORT_WPOINTER_SIGN)
  9. CHECK_C_COMPILER_FLAG(-Wno-sign-compare SUPPORT_WSIGN_COMPARE)
  10. CHECK_C_COMPILER_FLAG(-Wstrict-prototypes SUPPORT_WSTRICT_PROTOTYPES)
  11. CHECK_C_COMPILER_FLAG(-pedantic SUPPORT_PEDANTIC_FLAG)
  12. CHECK_C_COMPILER_FLAG(-Wno-unused-const-variable SUPPORT_WNO_UNUSED_CONST)
  13. CHECK_C_COMPILER_FLAG(-Wmissing-noreturn SUPPORT_WMISSING_NORETURN)
  14. CHECK_C_COMPILER_FLAG(-Wmissing-format-attribute SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
  15. # GCC 6 specific
  16. CHECK_C_COMPILER_FLAG(-Wnull-dereference SUPPORT_WNULL_DEREFERENCE)
  17. CHECK_C_COMPILER_FLAG(-Wduplicated-cond SUPPORT_WDUPLICATED_COND)
  18. # GCC 7 specific
  19. CHECK_C_COMPILER_FLAG(-Wimplicit-fallthrough SUPPORT_WIMPLICIT_FALLTHROUGH)
  20. # Special check for deprecated declarations, as since OpenSSL 3.0 they
  21. # just poison output for no good reason
  22. CHECK_C_COMPILER_FLAG(-Wdeprecated-declarations SUPPORT_WDEPRECATED_DECLARATIONS)
  23. # Disable -Wsuggest-attribute=format: it is too noisy with FPs around fmt C++ library
  24. CHECK_C_COMPILER_FLAG(-Wsuggest-attribute SUPPORT_WSUGGEST_ATTRIBUTE)
  25. # Disable -Wunknown-pragmas: we have both clang and gcc pragmas
  26. CHECK_C_COMPILER_FLAG(-Wunknown-pragmas SUPPORT_WUNKNOWN_PRAGMAS)
  27. IF(SUPPORT_WEXTRA)
  28. ADD_COMPILE_OPTIONS("-Wextra")
  29. ENDIF(SUPPORT_WEXTRA)
  30. IF(SUPPORT_WALL)
  31. ADD_COMPILE_OPTIONS("-Wall")
  32. ENDIF(SUPPORT_WALL)
  33. IF(SUPPORT_WPOINTER)
  34. ADD_COMPILE_OPTIONS("-Wpointer-arith")
  35. ENDIF(SUPPORT_WPOINTER)
  36. IF(SUPPORT_WPARAM)
  37. ADD_COMPILE_OPTIONS("-Wno-unused-parameter")
  38. ENDIF(SUPPORT_WPARAM)
  39. IF(SUPPORT_WFUNCTION)
  40. ADD_COMPILE_OPTIONS("-Wno-unused-function")
  41. ENDIF(SUPPORT_WFUNCTION)
  42. IF(SUPPORT_WUNUSED_VAR)
  43. ADD_COMPILE_OPTIONS("-Wunused-variable")
  44. ENDIF(SUPPORT_WUNUSED_VAR)
  45. IF(SUPPORT_WPOINTER_SIGN)
  46. # only valid for C
  47. ADD_COMPILE_OPTIONS($<$<COMPILE_LANGUAGE:C>:-Wno-pointer-sign>)
  48. ENDIF(SUPPORT_WPOINTER_SIGN)
  49. IF(SUPPORT_WSTRICT_PROTOTYPES)
  50. # only valid for C
  51. ADD_COMPILE_OPTIONS($<$<COMPILE_LANGUAGE:C>:-Wstrict-prototypes>)
  52. ENDIF(SUPPORT_WSTRICT_PROTOTYPES)
  53. IF(SUPPORT_WSTRICT_ALIASING)
  54. ADD_COMPILE_OPTIONS("-Wno-strict-aliasing")
  55. ADD_COMPILE_OPTIONS("-fno-strict-aliasing")
  56. ENDIF(SUPPORT_WSTRICT_ALIASING)
  57. #IF(SUPPORT_PEDANTIC_FLAG)
  58. # SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -pedantic")
  59. #ENDIF(SUPPORT_PEDANTIC_FLAG)
  60. IF(SUPPORT_WNULL_DEREFERENCE)
  61. ADD_COMPILE_OPTIONS("-Wnull-dereference")
  62. ENDIF()
  63. IF(SUPPORT_WDUPLICATED_COND)
  64. ADD_COMPILE_OPTIONS("-Wduplicated-cond")
  65. ENDIF()
  66. IF(SUPPORT_WLOGICAL_OP)
  67. ADD_COMPILE_OPTIONS("-Wlogical-op")
  68. ENDIF()
  69. IF(SUPPORT_WNO_UNUSED_CONST)
  70. ADD_COMPILE_OPTIONS("-Wno-unused-const-variable")
  71. ENDIF()
  72. IF(SUPPORT_WSIGN_COMPARE)
  73. ADD_COMPILE_OPTIONS("-Wno-sign-compare")
  74. ENDIF()
  75. IF(SUPPORT_WIMPLICIT_FALLTHROUGH)
  76. ADD_COMPILE_OPTIONS("-Wno-implicit-fallthrough")
  77. ENDIF(SUPPORT_WIMPLICIT_FALLTHROUGH)
  78. IF(SUPPORT_WMISSING_NORETURN)
  79. ADD_COMPILE_OPTIONS("-Wmissing-noreturn")
  80. ENDIF(SUPPORT_WMISSING_NORETURN)
  81. IF(SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
  82. ADD_COMPILE_OPTIONS("-Wmissing-format-attribute")
  83. ENDIF(SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
  84. IF(SUPPORT_WSUGGEST_ATTRIBUTE)
  85. ADD_COMPILE_OPTIONS("-Wno-suggest-attribute=format")
  86. ENDIF()
  87. IF(SUPPORT_WDEPRECATED_DECLARATIONS)
  88. ADD_COMPILE_OPTIONS("-Wno-deprecated-declarations")
  89. ENDIF()
  90. IF(SUPPORT_WUNKNOWN_PRAGMAS)
  91. ADD_COMPILE_OPTIONS("-Wno-unknown-pragmas")
  92. ENDIF()