diff options
-rw-r--r-- | CMakeLists.txt | 14 | ||||
-rw-r--r-- | cmake/maintainer.cmake | 2 | ||||
-rw-r--r-- | configure.cmake | 4 | ||||
-rw-r--r-- | support-files/compiler_warnings.supp | 4 |
4 files changed, 11 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b0c4898785..b5505b5ba6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,7 @@ ENDIF() # INCLUDE(maintainer) -SET(MYSQL_MAINTAINER_MODE "AUTO" CACHE STRING "MySQL maintainer-specific development environment. Options are: ON OFF AUTO.") +SET(MYSQL_MAINTAINER_MODE "OFF" CACHE STRING "MySQL maintainer-specific development environment. Options are: ON OFF AUTO.") MARK_AS_ADVANCED(MYSQL_MAINTAINER_MODE) # Whether the maintainer mode compiler options should be enabled. @@ -261,16 +261,18 @@ MYSQL_CHECK_SSL() MYSQL_CHECK_READLINE() # -# Setup maintainer mode options by the end. Platform checks are +# Setup maintainer mode options. Platform checks are # not run with the warning options as to not perturb fragile checks # (i.e. do not make warnings into errors). +# We have to add MAINTAINER_C_WARNINGS first to ensure that the flags +# given by the invoking user are honored # IF(MYSQL_MAINTAINER_MODE MATCHES "ON") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MY_MAINTAINER_C_WARNINGS}") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MY_MAINTAINER_CXX_WARNINGS}") + SET(CMAKE_C_FLAGS "${MY_MAINTAINER_C_WARNINGS} ${CMAKE_C_FLAGS}") + SET(CMAKE_CXX_FLAGS "${MY_MAINTAINER_CXX_WARNINGS} ${CMAKE_CXX_FLAGS}") ELSEIF(MYSQL_MAINTAINER_MODE MATCHES "AUTO") - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${MY_MAINTAINER_C_WARNINGS}") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${MY_MAINTAINER_CXX_WARNINGS}") + SET(CMAKE_C_FLAGS_DEBUG "${MY_MAINTAINER_C_WARNINGS} ${CMAKE_C_FLAGS_DEBUG}") + SET(CMAKE_CXX_FLAGS_DEBUG "${MY_MAINTAINER_CXX_WARNINGS} ${CMAKE_CXX_FLAGS_DEBUG}") ENDIF() IF(WITH_UNIT_TESTS) diff --git a/cmake/maintainer.cmake b/cmake/maintainer.cmake index 9c9ab8cca3b..a70226e2b6e 100644 --- a/cmake/maintainer.cmake +++ b/cmake/maintainer.cmake @@ -18,7 +18,7 @@ INCLUDE(CheckCCompilerFlag) # Setup GCC (GNU C compiler) warning options. MACRO(SET_MYSQL_MAINTAINER_GNU_C_OPTIONS) SET(MY_MAINTAINER_WARNINGS - "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing") + "-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -DFORCE_INIT_OF_VARS") CHECK_C_COMPILER_FLAG("-Wno-missing-field-initializers" HAVE_NO_MISSING_FIELD_INITIALIZERS) diff --git a/configure.cmake b/configure.cmake index 6191ceef378..83fc34b752b 100644 --- a/configure.cmake +++ b/configure.cmake @@ -55,10 +55,10 @@ ENDIF() # Always enable -Wall for gnu C/C++ -IF(CMAKE_COMPILER_IS_GNUCXX) +IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_FLAGS MATCHES ".*-Wall.*") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-parameter") ENDIF() -IF(CMAKE_COMPILER_IS_GNUCC) +IF(CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_C_FLAGS MATCHES ".*-Wall.*") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") ENDIF() diff --git a/support-files/compiler_warnings.supp b/support-files/compiler_warnings.supp index 637c3950b63..0184c73dac8 100644 --- a/support-files/compiler_warnings.supp +++ b/support-files/compiler_warnings.supp @@ -129,10 +129,6 @@ signal\.c : .*unused parameter.* # Aria warning that is ok in debug builds # storage/maria/ma_pagecache.c: .*'info_check_pin' defined but not used -# -# This warning is strange; We should not get it with -DFORCE_INIT_OF_VARS -# I added the suprression as I was not able to remove this warning :( -storage/maria/ma_check.c: may be used uninitialized in this function : 1200-1500 # # Pbxt |