From a9031b6bae742b333b1b390192fa590f2ecb07ea Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Mon, 5 Oct 2020 11:27:14 +0100 Subject: Fix cmake not adding Werror on clang, and _lots_ of warnings (#4963) * Fix cmake not adding Werror on clang, and _lots_ of warnings * WIP: Build fixes * Cannot make intermediate blockhandler instance * Tiger's changes * Fix BitIndex check * Handle invalid NextState values in cMultiVersionProtocol Co-authored-by: Tiger Wang --- SetFlags.cmake | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'SetFlags.cmake') diff --git a/SetFlags.cmake b/SetFlags.cmake index cf8cacd47..f5c8a282b 100644 --- a/SetFlags.cmake +++ b/SetFlags.cmake @@ -111,6 +111,14 @@ function(set_global_flags) endif() endfunction() +function (try_add_flag TARGET FLAG) + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("${FLAG}" "HAS_FLAG_${FLAG}") + if ("${HAS_FLAG_${FLAG}}") + target_compile_options(${TARGET} PRIVATE "${FLAG}") + endif() +endfunction() + function(set_exe_flags TARGET) if (MSVC) # TODO: MSVC level 4, warnings as errors @@ -134,7 +142,7 @@ function(set_exe_flags TARGET) -Wno-unused-parameter ) - if(CMAKE_CXX_COMPILE_ID STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options( ${TARGET} PRIVATE @@ -155,5 +163,10 @@ function(set_exe_flags TARGET) -Wno-documentation -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-error=unused-command-line-argument ) + + # We aren't using C++11 + try_add_flag(${TARGET} -Wno-return-std-move-in-c++11) + # int to float conversions happen a lot, not worth fixing all warnings + try_add_flag(${TARGET} -Wno-implicit-int-float-conversion) endif() endfunction() -- cgit v1.2.3