mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
chore(build): Enable lots of compile-time warnings
Taken directly from 9777aa619d/warnings
* Remove Wuseless-cast, because Qt's MOC-generated code hits it.
* Remove Wduplicated-branches, Wduplicated-branches, Wformat-truncation
because they aren't supported on our oldest CI job.
This commit is contained in:
parent
ece26e4a4f
commit
aa2e253674
|
@ -646,6 +646,7 @@ link_libraries(coverage_config)
|
|||
add_subdirectory(util)
|
||||
add_subdirectory(audio)
|
||||
add_subdirectory(translations)
|
||||
add_subdirectory(cmake/warnings)
|
||||
|
||||
add_library(${PROJECT_NAME}_static
|
||||
STATIC
|
||||
|
@ -659,6 +660,7 @@ target_link_libraries(${PROJECT_NAME}_static
|
|||
target_link_libraries(${PROJECT_NAME}_static util_library)
|
||||
target_link_libraries(${PROJECT_NAME}_static audio_library)
|
||||
target_link_libraries(${PROJECT_NAME}_static translations_library)
|
||||
target_link_libraries(${PROJECT_NAME}_static qtox::warnings)
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
WIN32
|
||||
|
|
75
cmake/warnings/CMakeLists.txt
Normal file
75
cmake/warnings/CMakeLists.txt
Normal file
|
@ -0,0 +1,75 @@
|
|||
project(qtox_warnings)
|
||||
|
||||
add_library(${PROJECT_NAME} INTERFACE)
|
||||
add_library(qtox::warnings ALIAS ${PROJECT_NAME})
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
if("${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
|
||||
set(CLANGCL ON)
|
||||
else()
|
||||
set(CLANG ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
target_compile_options(${PROJECT_NAME} INTERFACE
|
||||
$<$<OR:$<BOOL:${CLANG}>,$<CXX_COMPILER_ID:GNU>>:
|
||||
-fno-common;
|
||||
-fstrict-overflow;
|
||||
-ftrapv;
|
||||
-pedantic-errors;
|
||||
-Wall;
|
||||
-Wcast-align;
|
||||
-Wdouble-promotion;
|
||||
-Werror;
|
||||
-Wextra;
|
||||
-Wformat=2;
|
||||
-Wmissing-declarations;
|
||||
-Wnon-virtual-dtor;
|
||||
-Wnull-dereference;
|
||||
-Wold-style-cast;
|
||||
-Woverloaded-virtual;
|
||||
-Wshadow;
|
||||
-Wsign-compare;
|
||||
-Wundef;
|
||||
>
|
||||
$<$<CXX_COMPILER_ID:GNU>:
|
||||
-Wduplicated-cond;
|
||||
-Wlogical-op;
|
||||
>
|
||||
$<$<BOOL:${CLANG}>:
|
||||
-Wmissing-variable-declarations;
|
||||
-Wno-gnu-zero-variadic-macro-arguments; # Required for gtest 1.10.
|
||||
>
|
||||
$<$<OR:$<BOOL:${CLANGCL}>,$<CXX_COMPILER_ID:MSVC>>:
|
||||
/permissive-;
|
||||
/W4;
|
||||
/w14254; # 'operator': conversion from 'type1:field_bits' to
|
||||
# 'type2:field_bits', possible loss of data
|
||||
/w14263; # 'function': member function does not override any base class
|
||||
# virtual member function
|
||||
/w14265; # 'classname': class has virtual functions, but destructor is not
|
||||
# virtual instances of this class may not be destructed correctly
|
||||
/w14287; # 'operator': unsigned/negative constant mismatch
|
||||
/w14289; # nonstandard extension used: 'variable': loop control variable
|
||||
# declared in the for-loop is used outside the for-loop scope
|
||||
/w14296; # 'operator': expression is always 'boolean_value'
|
||||
/w14311; # 'variable': pointer truncation from 'type1' to 'type2'
|
||||
/w14545; # expression before comma evaluates to a function which is missing
|
||||
# an argument list
|
||||
/w14546; # function call before comma missing argument list
|
||||
/w14547; # 'operator': operator before comma has no effect; expected
|
||||
# operator with side-effect
|
||||
/w14549; # 'operator': operator before comma has no effect; did you intend
|
||||
# 'operator'?
|
||||
/w14555; # expression has no effect; expected expression with side- effect
|
||||
/w14619; # pragma warning: there is no warning number 'number'
|
||||
/w14640; # Enable warning on thread un-safe static member initialization
|
||||
/w14826; # Conversion from 'type1' to 'type_2' is sign-extended. This may
|
||||
# cause unexpected runtime behavior.
|
||||
/w14928; # illegal copy-initialization; more than one user-defined
|
||||
# conversion has been implicitly applied
|
||||
/wd4244; # 'argument': conversion from 'int' to 'unsigned char', possible
|
||||
# loss of data # This one is sort of required for gtest.
|
||||
/WX;
|
||||
>
|
||||
)
|
Loading…
Reference in New Issue
Block a user