summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Scott <michael.scott250@gmail.com>2015-11-08 23:34:59 (GMT)
committerBrad King <brad.king@kitware.com>2015-12-01 15:22:45 (GMT)
commite8974b62d7883adf100d4c6ad90a0fbf682aaa91 (patch)
tree0d2c155ab404562b9485211ac61aadfba6355468
parentb146747ed7f3cee8d8ef9c3ea6899ec3135aa527 (diff)
downloadCMake-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.txt5
-rw-r--r--Help/release/dev/cmake-W-options.rst3
-rw-r--r--Source/cmake.cxx26
-rw-r--r--Tests/RunCMake/CommandLine/RunCMakeTest.cmake13
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)