diff options
author | Michael Scott <michael.scott250@gmail.com> | 2015-11-08 23:34:59 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-12-01 15:22:45 (GMT) |
commit | e8974b62d7883adf100d4c6ad90a0fbf682aaa91 (patch) | |
tree | 0d2c155ab404562b9485211ac61aadfba6355468 | |
parent | b146747ed7f3cee8d8ef9c3ea6899ec3135aa527 (diff) | |
download | CMake-e8974b62d7883adf100d4c6ad90a0fbf682aaa91.zip CMake-e8974b62d7883adf100d4c6ad90a0fbf682aaa91.tar.gz CMake-e8974b62d7883adf100d4c6ad90a0fbf682aaa91.tar.bz2 |
Modify dev warning options to affect deprecated warnings.
Change the '-Wdev' and '-Wno-dev' options to also enable and
suppress the deprecated warnings output, via the
'CMAKE_WARN_DEPRECATED' CMake variable, by default. This
action does not happen if the user specifies a deprecated
warning message option.
Add tests and update the documentation for the new
functionality.
-rw-r--r-- | Help/manual/OPTIONS_BUILD.txt | 5 | ||||
-rw-r--r-- | Help/release/dev/cmake-W-options.rst | 3 | ||||
-rw-r--r-- | Source/cmake.cxx | 26 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 13 |
4 files changed, 45 insertions, 2 deletions
diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt index eec138c..977264c 100644 --- a/Help/manual/OPTIONS_BUILD.txt +++ b/Help/manual/OPTIONS_BUILD.txt @@ -77,13 +77,14 @@ Suppress developer warnings. Suppress warnings that are meant for the author of the - CMakeLists.txt files. + CMakeLists.txt files. By default this will also turn off + deprecation warnings. ``-Wdev`` Enable developer warnings. Enable warnings that are meant for the author of the CMakeLists.txt - files. + files. By default this will also turn on deprecation warnings. ``-Wdeprecated`` Enable deprecated functionality warnings. diff --git a/Help/release/dev/cmake-W-options.rst b/Help/release/dev/cmake-W-options.rst index e64d618..4784718 100644 --- a/Help/release/dev/cmake-W-options.rst +++ b/Help/release/dev/cmake-W-options.rst @@ -3,3 +3,6 @@ cmake-W-options * The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options. + +* The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable + and suppress the deprecated warnings output by default. diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 37d7e0a..6481c78 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1285,6 +1285,16 @@ int cmake::Configure() if (this->DiagLevels.count("dev") == 1) { + bool setDeprecatedVariables = false; + + const char* cachedWarnDeprecated = + this->State->GetCacheEntryValue("CMAKE_WARN_DEPRECATED"); + + // don't overwrite deprecated warning setting from a previous invocation + if (!cachedWarnDeprecated) + { + setDeprecatedVariables = true; + } diagLevel = this->DiagLevels["dev"]; if (diagLevel == DIAG_IGNORE) @@ -1293,6 +1303,14 @@ int cmake::Configure() "Suppress Warnings that are meant for" " the author of the CMakeLists.txt files.", cmState::INTERNAL); + + if (setDeprecatedVariables) + { + this->AddCacheEntry("CMAKE_WARN_DEPRECATED", "FALSE", + "Whether to issue warnings for deprecated " + "functionality.", + cmState::INTERNAL); + } } else if (diagLevel == DIAG_WARN) { @@ -1300,6 +1318,14 @@ int cmake::Configure() "Suppress Warnings that are meant for" " the author of the CMakeLists.txt files.", cmState::INTERNAL); + + if (setDeprecatedVariables) + { + this->AddCacheEntry("CMAKE_WARN_DEPRECATED", "TRUE", + "Whether to issue warnings for deprecated " + "functionality.", + cmState::INTERNAL); + } } } diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index f726ae2..efe143e 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -133,6 +133,19 @@ set(RunCMake_TEST_OPTIONS -Wdev) run_cmake(Wdev) unset(RunCMake_TEST_OPTIONS) +# -Wdev should not override deprecated options if specified +set(RunCMake_TEST_OPTIONS -Wdev -Wno-deprecated) +run_cmake(Wno-deprecated) +unset(RunCMake_TEST_OPTIONS) +set(RunCMake_TEST_OPTIONS -Wno-deprecated -Wdev) +run_cmake(Wno-deprecated) +unset(RunCMake_TEST_OPTIONS) + +# -Wdev should enable deprecated warnings as well +set(RunCMake_TEST_OPTIONS -Wdev) +run_cmake(Wdeprecated) +unset(RunCMake_TEST_OPTIONS) + set(RunCMake_TEST_OPTIONS -Wdeprecated) run_cmake(Wdeprecated) unset(RunCMake_TEST_OPTIONS) |