This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via cfcc9d523d53ca01cdebe0e6c01e7e03b8fa8780 (commit) via aac633d5e5765bb6b51e31364325ae7d916f021c (commit) via e8974b62d7883adf100d4c6ad90a0fbf682aaa91 (commit) via b146747ed7f3cee8d8ef9c3ea6899ec3135aa527 (commit) via da688bcb3b7edc1da19fc8b89e2425f40d3fa7f1 (commit) via 07388f83b69739116c8364e9443f10158fcdc912 (commit) via 246b0bfbfda9a8f3091fc34fc92816aebaf60ae9 (commit) via deec3a3f06d341cfe0bef4e856b263eff347cc72 (commit) via aa427a4239eb691d4129ebc383ab7b0d61b5b94e (commit) from 3a00e367994cde14d1a23a753b5e281e6342554a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cfcc9d523d53ca01cdebe0e6c01e7e03b8fa8780 commit cfcc9d523d53ca01cdebe0e6c01e7e03b8fa8780 Merge: 3a00e36 aac633d Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Dec 1 10:27:06 2015 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Tue Dec 1 10:27:06 2015 -0500 Merge topic 'cmake-W-options' into next aac633d5 Explicitly enable deprecated warnings by default. e8974b62 Modify dev warning options to affect deprecated warnings. b146747e Consistent documentation for deprecation message variables. da688bcb Add -W options to control deprecated warning messages. 07388f83 Refactor the -W options parser to be generic. 246b0bfb Explicitly enable author (dev) warnings by default. deec3a3f Make message suppression more consistent. aa427a42 Tests: Revise message in RunCMake.CommandLine -Wdev case https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aac633d5e5765bb6b51e31364325ae7d916f021c commit aac633d5e5765bb6b51e31364325ae7d916f021c Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 29 13:34:07 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 10:22:51 2015 -0500 Explicitly enable deprecated warnings by default. Explicitly enable deprecated warnings by default, via the cmake::GetSuppressDeprecatedWarnings method, which signals suppression is turned off unless the CMake variables are set as required. Add tests and update the documentation for the new functionality. diff --git a/Help/release/dev/cmake-W-options.rst b/Help/release/dev/cmake-W-options.rst index 4784718..57d375f 100644 --- a/Help/release/dev/cmake-W-options.rst +++ b/Help/release/dev/cmake-W-options.rst @@ -6,3 +6,7 @@ cmake-W-options * The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable and suppress the deprecated warnings output by default. + +* Warnings about deprecated functionality are now enabled by default. + They may be suppressed with ``-Wno-deprecated`` or by setting the + :variable:`CMAKE_WARN_DEPRECATED` variable to false. diff --git a/Help/variable/CMAKE_WARN_DEPRECATED.rst b/Help/variable/CMAKE_WARN_DEPRECATED.rst index 5f87c34..4a224fa 100644 --- a/Help/variable/CMAKE_WARN_DEPRECATED.rst +++ b/Help/variable/CMAKE_WARN_DEPRECATED.rst @@ -3,8 +3,8 @@ CMAKE_WARN_DEPRECATED Whether to issue warnings for deprecated functionality. -If ``TRUE``, use of deprecated functionality will issue warnings. -If this variable is not set, CMake behaves as if it were set to ``FALSE``. +If not ``FALSE``, use of deprecated functionality will issue warnings. +If this variable is not set, CMake behaves as if it were set to ``TRUE``. When running :manual:`cmake(1)`, this option can be enabled with the ``-Wdeprecated`` option, or disabled with the ``-Wno-deprecated`` option. diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx index fd0345d..8272eb0 100644 --- a/Source/cmMessageCommand.cxx +++ b/Source/cmMessageCommand.cxx @@ -66,13 +66,17 @@ bool cmMessageCommand fatal = true; type = cmake::DEPRECATION_ERROR; } - else if (this->Makefile->IsOn("CMAKE_WARN_DEPRECATED")) - { - type = cmake::DEPRECATION_WARNING; - } else { - return true; + if (this->Makefile->GetCMakeInstance()->GetSuppressDeprecatedWarnings( + this->Makefile)) + { + return true; + } + else + { + type = cmake::DEPRECATION_WARNING; + } } ++i; } diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 6481c78..c0a1196 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2581,10 +2581,7 @@ bool cmake::IsMessageTypeVisible(cmake::MessageType t) } else if (t == cmake::DEPRECATION_WARNING) { - // if CMAKE_WARN_DEPRECATED is on, show the message, otherwise suppress it - const char* warnDeprecated = this->State->GetInitializedCacheValue( - "CMAKE_WARN_DEPRECATED"); - if(cmSystemTools::IsOff(warnDeprecated)) + if (this->GetSuppressDeprecatedWarnings()) { isVisible = false; } @@ -2916,3 +2913,22 @@ bool cmake::GetSuppressDevWarnings(cmMakefile const* mf) return cmSystemTools::IsOn(cacheEntryValue); } } + +bool cmake::GetSuppressDeprecatedWarnings(cmMakefile const* mf) +{ + /* + * The suppression CMake variable may be set in the CMake configuration file + * itself, so we have to check what its set to in the makefile if we can. + */ + if (mf) + { + return (mf->IsSet("CMAKE_WARN_DEPRECATED") && + !mf->IsOn("CMAKE_WARN_DEPRECATED")); + } + else + { + const char* cacheEntryValue = this->State->GetCacheEntryValue( + "CMAKE_WARN_DEPRECATED"); + return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue); + } +} diff --git a/Source/cmake.h b/Source/cmake.h index 8739b87..4c5515b 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -316,6 +316,13 @@ class cmake */ bool GetSuppressDevWarnings(cmMakefile const* mf = NULL); + /* + * Get the state of the suppression of deprecated warnings. + * Returns false, by default, if deprecated warnings should be shown, true + * otherwise. + */ + bool GetSuppressDeprecatedWarnings(cmMakefile const* mf = NULL); + /** Display a message to the user. */ void IssueMessage(cmake::MessageType t, std::string const& text, cmListFileBacktrace const& backtrace = cmListFileBacktrace(), diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index efe143e..6b4b384 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -157,6 +157,9 @@ unset(RunCMake_TEST_OPTIONS) # Dev warnings should be on by default run_cmake(Wdev) +# Deprecated warnings should be on by default +run_cmake(Wdeprecated) + # Conflicting -W options should honor the last value set(RunCMake_TEST_OPTIONS -Wno-dev -Wdev) run_cmake(Wdev) diff --git a/Tests/RunCMake/message/defaultmessage-stderr.txt b/Tests/RunCMake/message/defaultmessage-stderr.txt index 95656ec..dd1b28f 100644 --- a/Tests/RunCMake/message/defaultmessage-stderr.txt +++ b/Tests/RunCMake/message/defaultmessage-stderr.txt @@ -1,4 +1,10 @@ -^CMake Warning \(dev\) at defaultmessage.cmake:4 \(message\): +^CMake Deprecation Warning at defaultmessage.cmake:2 \(message\): + This is a deprecation warning +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) + + +CMake Warning \(dev\) at defaultmessage.cmake:4 \(message\): This is a author warning Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/message/nomessage.cmake b/Tests/RunCMake/message/nomessage.cmake index 582ab4d..78f4769 100644 --- a/Tests/RunCMake/message/nomessage.cmake +++ b/Tests/RunCMake/message/nomessage.cmake @@ -1,4 +1,6 @@ +set(CMAKE_WARN_DEPRECATED OFF) + message(DEPRECATION "This is not issued") set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e8974b62d7883adf100d4c6ad90a0fbf682aaa91 commit e8974b62d7883adf100d4c6ad90a0fbf682aaa91 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 8 23:34:59 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 10:22:45 2015 -0500 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. 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) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b146747ed7f3cee8d8ef9c3ea6899ec3135aa527 commit b146747ed7f3cee8d8ef9c3ea6899ec3135aa527 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 8 23:16:58 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 10:22:19 2015 -0500 Consistent documentation for deprecation message variables. Make the documentation for the 'CMAKE_ERROR_DEPRECATED' CMake variable consistent with the documentation for the 'CMAKE_WARN_DEPRECATED' CMake variable, in terms of wording. diff --git a/Help/variable/CMAKE_ERROR_DEPRECATED.rst b/Help/variable/CMAKE_ERROR_DEPRECATED.rst index 277a4cc..f3a6738 100644 --- a/Help/variable/CMAKE_ERROR_DEPRECATED.rst +++ b/Help/variable/CMAKE_ERROR_DEPRECATED.rst @@ -1,8 +1,7 @@ CMAKE_ERROR_DEPRECATED ---------------------- -Whether to issue deprecation errors for macros and functions. +Whether to issue errors for deprecated functionality. -If ``TRUE``, this can be used by macros and functions to issue fatal -errors when deprecated macros or functions are used. This variable is -``FALSE`` by default. +If ``TRUE``, use of deprecated functionality will issue fatal errors. +If this variable is not set, CMake behaves as if it were set to ``FALSE``. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=da688bcb3b7edc1da19fc8b89e2425f40d3fa7f1 commit da688bcb3b7edc1da19fc8b89e2425f40d3fa7f1 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 8 23:06:33 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 10:21:57 2015 -0500 Add -W options to control deprecated warning messages. Add 'deprecated' warning options type, to allow setting CMAKE_WARN_DEPRECATED via the -W '-Wdeprecated' and '-Wno-deprecated' options. Add tests for new options and updated documentation. diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt index 4207db4..eec138c 100644 --- a/Help/manual/OPTIONS_BUILD.txt +++ b/Help/manual/OPTIONS_BUILD.txt @@ -84,3 +84,15 @@ Enable warnings that are meant for the author of the CMakeLists.txt files. + +``-Wdeprecated`` + Enable deprecated functionality warnings. + + Enable warnings for usage of deprecated functionality, that are meant + for the author of the CMakeLists.txt files. + +``-Wno-deprecated`` + Suppress deprecated functionality warnings. + + Suppress warnings for usage of deprecated functionality, that are meant + for the author of the CMakeLists.txt files. diff --git a/Help/release/dev/cmake-W-options.rst b/Help/release/dev/cmake-W-options.rst new file mode 100644 index 0000000..e64d618 --- /dev/null +++ b/Help/release/dev/cmake-W-options.rst @@ -0,0 +1,5 @@ +cmake-W-options +--------------- + +* The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the + ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options. diff --git a/Help/variable/CMAKE_WARN_DEPRECATED.rst b/Help/variable/CMAKE_WARN_DEPRECATED.rst index 662cbd8..5f87c34 100644 --- a/Help/variable/CMAKE_WARN_DEPRECATED.rst +++ b/Help/variable/CMAKE_WARN_DEPRECATED.rst @@ -1,7 +1,10 @@ CMAKE_WARN_DEPRECATED --------------------- -Whether to issue deprecation warnings for macros and functions. +Whether to issue warnings for deprecated functionality. -If ``TRUE``, this can be used by macros and functions to issue deprecation -warnings. This variable is ``FALSE`` by default. +If ``TRUE``, use of deprecated functionality will issue warnings. +If this variable is not set, CMake behaves as if it were set to ``FALSE``. + +When running :manual:`cmake(1)`, this option can be enabled with the +``-Wdeprecated`` option, or disabled with the ``-Wno-deprecated`` option. diff --git a/Source/cmake.cxx b/Source/cmake.cxx index e6433bd..37d7e0a 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1263,6 +1263,26 @@ int cmake::Configure() { DiagLevel diagLevel; + if (this->DiagLevels.count("deprecated") == 1) + { + + diagLevel = this->DiagLevels["deprecated"]; + if (diagLevel == DIAG_IGNORE) + { + this->AddCacheEntry("CMAKE_WARN_DEPRECATED", "FALSE", + "Whether to issue warnings for deprecated " + "functionality.", + cmState::INTERNAL); + } + else if (diagLevel == DIAG_WARN) + { + this->AddCacheEntry("CMAKE_WARN_DEPRECATED", "TRUE", + "Whether to issue warnings for deprecated " + "functionality.", + cmState::INTERNAL); + } + } + if (this->DiagLevels.count("dev") == 1) { diff --git a/Source/cmake.h b/Source/cmake.h index 1bd6d4d..8739b87 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -444,7 +444,9 @@ private: {"-T <toolset-name>", "Specify toolset name if supported by generator."}, \ {"-A <platform-name>", "Specify platform name if supported by generator."}, \ {"-Wno-dev", "Suppress developer warnings."},\ - {"-Wdev", "Enable developer warnings."} + {"-Wdev", "Enable developer warnings."},\ + {"-Wdeprecated", "Enable deprecation warnings."},\ + {"-Wno-deprecated", "Suppress deprecation warnings."} #define FOR_EACH_C_FEATURE(F) \ F(c_function_prototypes) \ diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index d4f399c..f726ae2 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -133,6 +133,14 @@ set(RunCMake_TEST_OPTIONS -Wdev) run_cmake(Wdev) unset(RunCMake_TEST_OPTIONS) +set(RunCMake_TEST_OPTIONS -Wdeprecated) +run_cmake(Wdeprecated) +unset(RunCMake_TEST_OPTIONS) + +set(RunCMake_TEST_OPTIONS -Wno-deprecated) +run_cmake(Wno-deprecated) +unset(RunCMake_TEST_OPTIONS) + # Dev warnings should be on by default run_cmake(Wdev) diff --git a/Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt b/Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt new file mode 100644 index 0000000..e9be1dc --- /dev/null +++ b/Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt @@ -0,0 +1,4 @@ +^CMake Deprecation Warning at Wdeprecated.cmake:1 \(message\): + Some deprecated warning +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/CommandLine/Wdeprecated.cmake b/Tests/RunCMake/CommandLine/Wdeprecated.cmake new file mode 100644 index 0000000..3142b42 --- /dev/null +++ b/Tests/RunCMake/CommandLine/Wdeprecated.cmake @@ -0,0 +1 @@ +message(DEPRECATION "Some deprecated warning") diff --git a/Tests/RunCMake/CommandLine/Wno-deprecated.cmake b/Tests/RunCMake/CommandLine/Wno-deprecated.cmake new file mode 100644 index 0000000..3142b42 --- /dev/null +++ b/Tests/RunCMake/CommandLine/Wno-deprecated.cmake @@ -0,0 +1 @@ +message(DEPRECATION "Some deprecated warning") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=07388f83b69739116c8364e9443f10158fcdc912 commit 07388f83b69739116c8364e9443f10158fcdc912 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 29 12:39:03 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 09:40:43 2015 -0500 Refactor the -W options parser to be generic. Refactor the -Wdev and -Wno-dev options parser to use a generic -W parser that follows the GCC pattern, excluding support for -Werror=TYPE and -Wno-error=TYPE formats for now. diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 5213130..e6433bd 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -127,8 +127,6 @@ cmake::cmake() this->WarnUnused = false; this->WarnUnusedCli = true; this->CheckSystemVars = false; - this->SuppressDevWarnings = false; - this->DoSuppressDevWarnings = false; this->DebugOutput = false; this->DebugTryCompile = false; this->ClearBuildSystem = false; @@ -274,15 +272,51 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args) return false; } } - else if(arg.find("-Wno-dev",0) == 0) + else if(cmHasLiteralPrefix(arg, "-W")) { - this->SuppressDevWarnings = true; - this->DoSuppressDevWarnings = true; - } - else if(arg.find("-Wdev",0) == 0) - { - this->SuppressDevWarnings = false; - this->DoSuppressDevWarnings = true; + std::string entry = arg.substr(2); + if (entry.empty()) + { + ++i; + if (i < args.size()) + { + entry = args[i]; + } + else + { + cmSystemTools::Error("-W must be followed with [no-]<name>."); + return false; + } + } + + std::string name; + bool foundNo = false; + unsigned int nameStartPosition = 0; + + if (entry.find("no-", nameStartPosition) == 0) + { + foundNo = true; + nameStartPosition += 3; + } + + name = entry.substr(nameStartPosition); + if (name.empty()) + { + cmSystemTools::Error("No warning name provided."); + return false; + } + + if (!foundNo) + { + // -W<name> + this->DiagLevels[name] = std::max(this->DiagLevels[name], + DIAG_WARN); + } + else + { + // -Wno<name> + this->DiagLevels[name] = DIAG_IGNORE; + } } else if(arg.find("-U",0) == 0) { @@ -618,11 +652,7 @@ void cmake::SetArgs(const std::vector<std::string>& args, // skip for now i++; } - else if(arg.find("-Wno-dev",0) == 0) - { - // skip for now - } - else if(arg.find("-Wdev",0) == 0) + else if(arg.find("-W",0) == 0) { // skip for now } @@ -1231,25 +1261,28 @@ int cmake::HandleDeleteCacheVariables(const std::string& var) int cmake::Configure() { - if(this->DoSuppressDevWarnings) + DiagLevel diagLevel; + + if (this->DiagLevels.count("dev") == 1) { - if(this->SuppressDevWarnings) + + diagLevel = this->DiagLevels["dev"]; + if (diagLevel == DIAG_IGNORE) { - this-> - AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "TRUE", - "Suppress Warnings that are meant for" - " the author of the CMakeLists.txt files.", - cmState::INTERNAL); + this->AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "TRUE", + "Suppress Warnings that are meant for" + " the author of the CMakeLists.txt files.", + cmState::INTERNAL); } - else + else if (diagLevel == DIAG_WARN) { - this-> - AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE", - "Suppress Warnings that are meant for" - " the author of the CMakeLists.txt files.", - cmState::INTERNAL); + this->AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE", + "Suppress Warnings that are meant for" + " the author of the CMakeLists.txt files.", + cmState::INTERNAL); } } + int ret = this->ActualConfigure(); const char* delCacheVars = this->State ->GetGlobalProperty("__CMAKE_DELETE_CACHE_CHANGE_VARS_"); @@ -2805,6 +2838,21 @@ void cmake::RunCheckForUnusedVariables() #endif } +void cmake::SetSuppressDevWarnings(bool b) +{ + // equivalent to -Wno-dev + if (b) + { + this->DiagLevels["dev"] = DIAG_IGNORE; + } + // equivalent to -Wdev + else + { + this->DiagLevels["dev"] = std::max(this->DiagLevels["dev"], + DIAG_WARN); + } +} + bool cmake::GetSuppressDevWarnings(cmMakefile const* mf) { /* diff --git a/Source/cmake.h b/Source/cmake.h index 45ac28e..1bd6d4d 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -68,6 +68,11 @@ class cmake DEPRECATION_WARNING }; + enum DiagLevel + { + DIAG_IGNORE, + DIAG_WARN + }; /** \brief Describes the working modes of cmake */ enum WorkingMode @@ -303,11 +308,7 @@ class cmake std::string const& GetCMakeEditCommand() const { return this->CMakeEditCommand; } - void SetSuppressDevWarnings(bool v) - { - this->SuppressDevWarnings = v; - this->DoSuppressDevWarnings = true; - } + void SetSuppressDevWarnings(bool v); /* * Get the state of the suppression of developer (author) warnings. * Returns false, by default, if developer warnings should be shown, true @@ -359,8 +360,7 @@ protected: cmGlobalGenerator *GlobalGenerator; cmCacheManager *CacheManager; - bool SuppressDevWarnings; - bool DoSuppressDevWarnings; + std::map<std::string, DiagLevel> DiagLevels; std::string GeneratorPlatform; std::string GeneratorToolset; diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index 8eaaa08..d4f399c 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -129,13 +129,24 @@ set(RunCMake_TEST_OPTIONS -Wno-dev) run_cmake(Wno-dev) unset(RunCMake_TEST_OPTIONS) -set(RunCMake_TEST_OPTIONS -Wno-dev -Wdev) +set(RunCMake_TEST_OPTIONS -Wdev) run_cmake(Wdev) unset(RunCMake_TEST_OPTIONS) # Dev warnings should be on by default run_cmake(Wdev) +# Conflicting -W options should honor the last value +set(RunCMake_TEST_OPTIONS -Wno-dev -Wdev) +run_cmake(Wdev) +unset(RunCMake_TEST_OPTIONS) +set(RunCMake_TEST_OPTIONS -Wdev -Wno-dev) +run_cmake(Wno-dev) +unset(RunCMake_TEST_OPTIONS) + +run_cmake_command(W_bad-arg1 ${CMAKE_COMMAND} -W) +run_cmake_command(W_bad-arg2 ${CMAKE_COMMAND} -Wno-) + set(RunCMake_TEST_OPTIONS --debug-output) run_cmake(debug-output) unset(RunCMake_TEST_OPTIONS) diff --git a/Tests/RunCMake/CommandLine/W_bad-arg1-result.txt b/Tests/RunCMake/CommandLine/W_bad-arg1-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/W_bad-arg1-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt b/Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt new file mode 100644 index 0000000..0c0f613 --- /dev/null +++ b/Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt @@ -0,0 +1,2 @@ +CMake Error: -W must be followed with \[no-\]<name>. +CMake Error: Problem processing arguments. Aborting. diff --git a/Tests/RunCMake/CommandLine/W_bad-arg2-result.txt b/Tests/RunCMake/CommandLine/W_bad-arg2-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/W_bad-arg2-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt b/Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt new file mode 100644 index 0000000..cc643df --- /dev/null +++ b/Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt @@ -0,0 +1,2 @@ +CMake Error: No warning name provided. +CMake Error: Problem processing arguments. Aborting. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=246b0bfbfda9a8f3091fc34fc92816aebaf60ae9 commit 246b0bfbfda9a8f3091fc34fc92816aebaf60ae9 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 8 12:59:27 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Dec 1 09:35:53 2015 -0500 Explicitly enable author (dev) warnings by default. Explicitly enable author warnings by default, via the cmake::GetSuppressDevWarnings method, which signals suppression is turned off unless the CMake variables are set as required. Add test cases for author and deprecated messages displayed by default. diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx index 1c65ef7..fd0345d 100644 --- a/Source/cmMessageCommand.cxx +++ b/Source/cmMessageCommand.cxx @@ -43,7 +43,8 @@ bool cmMessageCommand } else if (*i == "AUTHOR_WARNING") { - if (this->Makefile->IsOn("CMAKE_SUPPRESS_DEVELOPER_WARNINGS")) + if (this->Makefile->GetCMakeInstance()->GetSuppressDevWarnings( + this->Makefile)) { return true; } diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 62476a1..5213130 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1580,6 +1580,7 @@ int cmake::Run(const std::vector<std::string>& args, bool noconfigure) { this->AddCMakePaths(); } + // Add any cache args if ( !this->SetCacheArgs(args) ) { @@ -2511,11 +2512,7 @@ bool cmake::IsMessageTypeVisible(cmake::MessageType t) } else if (t == cmake::AUTHOR_WARNING) { - // if CMAKE_SUPPRESS_DEVELOPER_WARNINGS is on, suppress the message, - // otherwise show it - const char* suppressDevWarnings = this->State->GetCacheEntryValue( - "CMAKE_SUPPRESS_DEVELOPER_WARNINGS"); - if(cmSystemTools::IsOn(suppressDevWarnings)) + if (this->GetSuppressDevWarnings()) { isVisible = false; } @@ -2807,3 +2804,21 @@ void cmake::RunCheckForUnusedVariables() } #endif } + +bool cmake::GetSuppressDevWarnings(cmMakefile const* mf) +{ + /* + * The suppression CMake variable may be set in the CMake configuration file + * itself, so we have to check what its set to in the makefile if we can. + */ + if (mf) + { + return mf->IsOn("CMAKE_SUPPRESS_DEVELOPER_WARNINGS"); + } + else + { + const char* cacheEntryValue = this->State->GetCacheEntryValue( + "CMAKE_SUPPRESS_DEVELOPER_WARNINGS"); + return cmSystemTools::IsOn(cacheEntryValue); + } +} diff --git a/Source/cmake.h b/Source/cmake.h index 0630daa..45ac28e 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -308,6 +308,12 @@ class cmake this->SuppressDevWarnings = v; this->DoSuppressDevWarnings = true; } + /* + * Get the state of the suppression of developer (author) warnings. + * Returns false, by default, if developer warnings should be shown, true + * otherwise. + */ + bool GetSuppressDevWarnings(cmMakefile const* mf = NULL); /** Display a message to the user. */ void IssueMessage(cmake::MessageType t, std::string const& text, diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index 2d94e29..8eaaa08 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -133,6 +133,9 @@ set(RunCMake_TEST_OPTIONS -Wno-dev -Wdev) run_cmake(Wdev) unset(RunCMake_TEST_OPTIONS) +# Dev warnings should be on by default +run_cmake(Wdev) + set(RunCMake_TEST_OPTIONS --debug-output) run_cmake(debug-output) unset(RunCMake_TEST_OPTIONS) diff --git a/Tests/RunCMake/message/RunCMakeTest.cmake b/Tests/RunCMake/message/RunCMakeTest.cmake index d2bc0c3..294dfbb 100644 --- a/Tests/RunCMake/message/RunCMakeTest.cmake +++ b/Tests/RunCMake/message/RunCMakeTest.cmake @@ -1,5 +1,6 @@ include(RunCMake) +run_cmake(defaultmessage) run_cmake(nomessage) run_cmake(warnmessage) run_cmake(errormessage) diff --git a/Tests/RunCMake/message/defaultmessage-result.txt b/Tests/RunCMake/message/defaultmessage-result.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/Tests/RunCMake/message/defaultmessage-result.txt @@ -0,0 +1 @@ +0 diff --git a/Tests/RunCMake/message/defaultmessage-stderr.txt b/Tests/RunCMake/message/defaultmessage-stderr.txt new file mode 100644 index 0000000..95656ec --- /dev/null +++ b/Tests/RunCMake/message/defaultmessage-stderr.txt @@ -0,0 +1,5 @@ +^CMake Warning \(dev\) at defaultmessage.cmake:4 \(message\): + This is a author warning +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) +This warning is for project developers. Use -Wno-dev to suppress it.$ diff --git a/Tests/RunCMake/message/defaultmessage.cmake b/Tests/RunCMake/message/defaultmessage.cmake new file mode 100644 index 0000000..427014d --- /dev/null +++ b/Tests/RunCMake/message/defaultmessage.cmake @@ -0,0 +1,4 @@ + +message(DEPRECATION "This is a deprecation warning") + +message(AUTHOR_WARNING "This is a author warning") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=deec3a3f06d341cfe0bef4e856b263eff347cc72 commit deec3a3f06d341cfe0bef4e856b263eff347cc72 Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 8 12:20:47 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Nov 30 15:00:08 2015 -0500 Make message suppression more consistent. Make the message suppression more consistent, by adding a check for the message related CMake variables in cmake::IssueMessage, which allows callers of IssueMessage other than the message command to behave as expected. Also added a check for CMAKE_SUPPRESS_DEVELOPER_WARNINGS in the message command to mirror the deprecated message type behaviour. Added a 'force' flag to the cmake::IssueMessage method, to make the message suppression consistent, when setting the message related CMake variables directly in a CMake file. Expand message command tests to cover the AUTHOR_WARNING message type as well. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 47e1731..1b0a99a 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -105,7 +105,8 @@ cmMakefile::~cmMakefile() //---------------------------------------------------------------------------- void cmMakefile::IssueMessage(cmake::MessageType t, - std::string const& text) const + std::string const& text, + bool force) const { // Collect context information. if(!this->ExecutionStatusStack.empty()) @@ -114,7 +115,8 @@ void cmMakefile::IssueMessage(cmake::MessageType t, { this->ExecutionStatusStack.back()->SetNestedError(true); } - this->GetCMakeInstance()->IssueMessage(t, text, this->GetBacktrace()); + this->GetCMakeInstance()->IssueMessage(t, text, this->GetBacktrace(), + force); } else { @@ -129,7 +131,7 @@ void cmMakefile::IssueMessage(cmake::MessageType t, lfc.FilePath = converter.Convert(lfc.FilePath, cmOutputConverter::HOME); } lfc.Line = 0; - this->GetCMakeInstance()->IssueMessage(t, text, lfc); + this->GetCMakeInstance()->IssueMessage(t, text, lfc, force); } } diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index fa1534d..362ea75 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -709,7 +709,8 @@ public: }; void IssueMessage(cmake::MessageType t, - std::string const& text) const; + std::string const& text, + bool force = false) const; /** Set whether or not to report a CMP0000 violation. */ void SetCheckCMP0000(bool b) { this->CheckCMP0000 = b; } diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx index 2854a82..1c65ef7 100644 --- a/Source/cmMessageCommand.cxx +++ b/Source/cmMessageCommand.cxx @@ -43,7 +43,14 @@ bool cmMessageCommand } else if (*i == "AUTHOR_WARNING") { - type = cmake::AUTHOR_WARNING; + if (this->Makefile->IsOn("CMAKE_SUPPRESS_DEVELOPER_WARNINGS")) + { + return true; + } + else + { + type = cmake::AUTHOR_WARNING; + } ++i; } else if (*i == "STATUS") @@ -73,7 +80,8 @@ bool cmMessageCommand if (type != cmake::MESSAGE) { - this->Makefile->IssueMessage(type, message); + // we've overriden the message type, above, so force IssueMessage to use it + this->Makefile->IssueMessage(type, message, true); } else { diff --git a/Source/cmake.cxx b/Source/cmake.cxx index ee1e878..62476a1 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2485,6 +2485,45 @@ static bool cmakeCheckStampList(const char* stampList) return true; } +bool cmake::IsMessageTypeVisible(cmake::MessageType t) +{ + bool isVisible = true; + + if(t == cmake::DEPRECATION_ERROR) + { + // if CMAKE_ERROR_DEPRECATED is on, show the message, otherwise suppress it + const char* errorDeprecated = this->State->GetCacheEntryValue( + "CMAKE_ERROR_DEPRECATED"); + if(cmSystemTools::IsOff(errorDeprecated)) + { + isVisible = false; + } + } + else if (t == cmake::DEPRECATION_WARNING) + { + // if CMAKE_WARN_DEPRECATED is on, show the message, otherwise suppress it + const char* warnDeprecated = this->State->GetInitializedCacheValue( + "CMAKE_WARN_DEPRECATED"); + if(cmSystemTools::IsOff(warnDeprecated)) + { + isVisible = false; + } + } + else if (t == cmake::AUTHOR_WARNING) + { + // if CMAKE_SUPPRESS_DEVELOPER_WARNINGS is on, suppress the message, + // otherwise show it + const char* suppressDevWarnings = this->State->GetCacheEntryValue( + "CMAKE_SUPPRESS_DEVELOPER_WARNINGS"); + if(cmSystemTools::IsOn(suppressDevWarnings)) + { + isVisible = false; + } + } + + return isVisible; +} + bool cmake::PrintMessagePreamble(cmake::MessageType t, std::ostream& msg) { // Construct the message header. @@ -2508,20 +2547,13 @@ bool cmake::PrintMessagePreamble(cmake::MessageType t, std::ostream& msg) { msg << "CMake Deprecation Warning"; } + else if (t == cmake::AUTHOR_WARNING) + { + msg << "CMake Warning (dev)"; + } else { msg << "CMake Warning"; - if(t == cmake::AUTHOR_WARNING) - { - // Allow suppression of these warnings. - const char* suppress = this->State->GetCacheEntryValue( - "CMAKE_SUPPRESS_DEVELOPER_WARNINGS"); - if(suppress && cmSystemTools::IsOn(suppress)) - { - return false; - } - msg << " (dev)"; - } } return true; } @@ -2579,10 +2611,16 @@ void displayMessage(cmake::MessageType t, std::ostringstream& msg) //---------------------------------------------------------------------------- void cmake::IssueMessage(cmake::MessageType t, std::string const& text, - cmListFileBacktrace const& bt) + cmListFileBacktrace const& bt, + bool force) { cmListFileBacktrace backtrace = bt; + if (!force && !this->IsMessageTypeVisible(t)) + { + return; + } + std::ostringstream msg; if (!this->PrintMessagePreamble(t, msg)) { @@ -2602,8 +2640,14 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text, //---------------------------------------------------------------------------- void cmake::IssueMessage(cmake::MessageType t, std::string const& text, - cmListFileContext const& lfc) + cmListFileContext const& lfc, + bool force) { + if (!force && !this->IsMessageTypeVisible(t)) + { + return; + } + std::ostringstream msg; if (!this->PrintMessagePreamble(t, msg)) { diff --git a/Source/cmake.h b/Source/cmake.h index c584ad9..0630daa 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -311,9 +311,11 @@ class cmake /** Display a message to the user. */ void IssueMessage(cmake::MessageType t, std::string const& text, - cmListFileBacktrace const& backtrace = cmListFileBacktrace()); + cmListFileBacktrace const& backtrace = cmListFileBacktrace(), + bool force = false); void IssueMessage(cmake::MessageType t, std::string const& text, - cmListFileContext const& lfc); + cmListFileContext const& lfc, + bool force = false); ///! run the --build option int Build(const std::string& dir, @@ -419,6 +421,12 @@ private: // Print a list of valid generators to stderr. void PrintGeneratorList(); + /* + * Check if messages of this type should be output, based on the state of the + * warning and error output CMake variables, in the cache. + */ + bool IsMessageTypeVisible(cmake::MessageType t); + bool PrintMessagePreamble(cmake::MessageType t, std::ostream& msg); }; diff --git a/Tests/RunCMake/message/nomessage.cmake b/Tests/RunCMake/message/nomessage.cmake index bcc97be..582ab4d 100644 --- a/Tests/RunCMake/message/nomessage.cmake +++ b/Tests/RunCMake/message/nomessage.cmake @@ -1,2 +1,6 @@ message(DEPRECATION "This is not issued") + +set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON) + +message(AUTHOR_WARNING "This is not issued") diff --git a/Tests/RunCMake/message/warnmessage-stderr.txt b/Tests/RunCMake/message/warnmessage-stderr.txt index 5c44566..e60af6e 100644 --- a/Tests/RunCMake/message/warnmessage-stderr.txt +++ b/Tests/RunCMake/message/warnmessage-stderr.txt @@ -1,4 +1,11 @@ -CMake Deprecation Warning at warnmessage.cmake:4 \(message\): - This is a warning +^CMake Deprecation Warning at warnmessage.cmake:4 \(message\): + This is a deprecation warning Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) + + +CMake Warning \(dev\) at warnmessage.cmake:8 \(message\): + This is a author warning +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) +This warning is for project developers. Use -Wno-dev to suppress it.$ diff --git a/Tests/RunCMake/message/warnmessage.cmake b/Tests/RunCMake/message/warnmessage.cmake index 4c421a1..53f2a43 100644 --- a/Tests/RunCMake/message/warnmessage.cmake +++ b/Tests/RunCMake/message/warnmessage.cmake @@ -1,4 +1,8 @@ set(CMAKE_WARN_DEPRECATED ON) -message(DEPRECATION "This is a warning") +message(DEPRECATION "This is a deprecation warning") + +set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS OFF) + +message(AUTHOR_WARNING "This is a author warning") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa427a4239eb691d4129ebc383ab7b0d61b5b94e commit aa427a4239eb691d4129ebc383ab7b0d61b5b94e Author: Michael Scott <michael.scott...@gmail.com> AuthorDate: Sun Nov 1 16:05:15 2015 +0000 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Nov 30 15:00:08 2015 -0500 Tests: Revise message in RunCMake.CommandLine -Wdev case Use more prose-like capitalization. diff --git a/Tests/RunCMake/CommandLine/Wdev-stderr.txt b/Tests/RunCMake/CommandLine/Wdev-stderr.txt index 92c1d23..88cfb3a 100644 --- a/Tests/RunCMake/CommandLine/Wdev-stderr.txt +++ b/Tests/RunCMake/CommandLine/Wdev-stderr.txt @@ -1,5 +1,5 @@ ^CMake Warning \(dev\) at Wdev.cmake:1 \(message\): - Some Author Warning + Some author warning Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) This warning is for project developers. Use -Wno-dev to suppress it. diff --git a/Tests/RunCMake/CommandLine/Wdev.cmake b/Tests/RunCMake/CommandLine/Wdev.cmake index e5026ef..756f31e 100644 --- a/Tests/RunCMake/CommandLine/Wdev.cmake +++ b/Tests/RunCMake/CommandLine/Wdev.cmake @@ -1,4 +1,4 @@ -message(AUTHOR_WARNING "Some Author Warning") +message(AUTHOR_WARNING "Some author warning") # with -Wdev this will also cause an AUTHOR_WARNING message, checks that # messages issued outside of the message command, by other CMake commands, also diff --git a/Tests/RunCMake/CommandLine/Wno-dev.cmake b/Tests/RunCMake/CommandLine/Wno-dev.cmake index d81b858..802b435 100644 --- a/Tests/RunCMake/CommandLine/Wno-dev.cmake +++ b/Tests/RunCMake/CommandLine/Wno-dev.cmake @@ -1,4 +1,4 @@ -message(AUTHOR_WARNING "Some Author Warning") +message(AUTHOR_WARNING "Some author warning") # without -Wno-dev this will also cause an AUTHOR_WARNING message, checks that # messages issued outside of the message command, by other CMake commands, also ----------------------------------------------------------------------- Summary of changes: Help/manual/OPTIONS_BUILD.txt | 17 +- Help/release/dev/cmake-W-options.rst | 12 + Help/variable/CMAKE_ERROR_DEPRECATED.rst | 7 +- Help/variable/CMAKE_WARN_DEPRECATED.rst | 9 +- Source/cmMakefile.cxx | 8 +- Source/cmMakefile.h | 3 +- Source/cmMessageCommand.cxx | 27 ++- Source/cmake.cxx | 251 ++++++++++++++++---- Source/cmake.h | 43 +++- Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 38 +++ .../W_bad-arg1-result.txt} | 0 Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt | 2 + .../W_bad-arg2-result.txt} | 0 Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt | 2 + Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt | 4 + Tests/RunCMake/CommandLine/Wdeprecated.cmake | 1 + Tests/RunCMake/CommandLine/Wdev-stderr.txt | 2 +- Tests/RunCMake/CommandLine/Wdev.cmake | 2 +- Tests/RunCMake/CommandLine/Wno-deprecated.cmake | 1 + Tests/RunCMake/CommandLine/Wno-dev.cmake | 2 +- Tests/RunCMake/message/RunCMakeTest.cmake | 1 + .../defaultmessage-result.txt} | 0 Tests/RunCMake/message/defaultmessage-stderr.txt | 11 + Tests/RunCMake/message/defaultmessage.cmake | 4 + Tests/RunCMake/message/nomessage.cmake | 6 + Tests/RunCMake/message/warnmessage-stderr.txt | 11 +- Tests/RunCMake/message/warnmessage.cmake | 6 +- 27 files changed, 393 insertions(+), 77 deletions(-) create mode 100644 Help/release/dev/cmake-W-options.rst copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => CommandLine/W_bad-arg1-result.txt} (100%) create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg1-stderr.txt copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => CommandLine/W_bad-arg2-result.txt} (100%) create mode 100644 Tests/RunCMake/CommandLine/W_bad-arg2-stderr.txt create mode 100644 Tests/RunCMake/CommandLine/Wdeprecated-stderr.txt create mode 100644 Tests/RunCMake/CommandLine/Wdeprecated.cmake create mode 100644 Tests/RunCMake/CommandLine/Wno-deprecated.cmake copy Tests/RunCMake/{CMP0022/CMP0022-WARN-empty-old-result.txt => message/defaultmessage-result.txt} (100%) create mode 100644 Tests/RunCMake/message/defaultmessage-stderr.txt create mode 100644 Tests/RunCMake/message/defaultmessage.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits