Merge topic 'fix-Message-API-ISP-violation'

0a4af073 cmake: Issue message independent of cmMakefile definition
This commit is contained in:
Brad King 2016-06-13 09:54:20 -04:00 committed by CMake Topic Stage
commit 3b14a4bca4
8 changed files with 51 additions and 51 deletions

View File

@ -24,7 +24,6 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args,
cmake::MessageType type = cmake::MESSAGE; cmake::MessageType type = cmake::MESSAGE;
bool status = false; bool status = false;
bool fatal = false; bool fatal = false;
cmake* cm = this->Makefile->GetCMakeInstance();
if (*i == "SEND_ERROR") { if (*i == "SEND_ERROR") {
type = cmake::FATAL_ERROR; type = cmake::FATAL_ERROR;
++i; ++i;
@ -36,10 +35,11 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args,
type = cmake::WARNING; type = cmake::WARNING;
++i; ++i;
} else if (*i == "AUTHOR_WARNING") { } else if (*i == "AUTHOR_WARNING") {
if (cm->GetDevWarningsAsErrors(this->Makefile)) { if (this->Makefile->IsSet("CMAKE_SUPPRESS_DEVELOPER_ERRORS") &&
!this->Makefile->IsOn("CMAKE_SUPPRESS_DEVELOPER_ERRORS")) {
fatal = true; fatal = true;
type = cmake::AUTHOR_ERROR; type = cmake::AUTHOR_ERROR;
} else if (!cm->GetSuppressDevWarnings(this->Makefile)) { } else if (!this->Makefile->IsOn("CMAKE_SUPPRESS_DEVELOPER_WARNINGS")) {
type = cmake::AUTHOR_WARNING; type = cmake::AUTHOR_WARNING;
} else { } else {
return true; return true;
@ -49,10 +49,11 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args,
status = true; status = true;
++i; ++i;
} else if (*i == "DEPRECATION") { } else if (*i == "DEPRECATION") {
if (cm->GetDeprecatedWarningsAsErrors(this->Makefile)) { if (this->Makefile->IsOn("CMAKE_ERROR_DEPRECATED")) {
fatal = true; fatal = true;
type = cmake::DEPRECATION_ERROR; type = cmake::DEPRECATION_ERROR;
} else if (!cm->GetSuppressDeprecatedWarnings(this->Makefile)) { } else if ((!this->Makefile->IsSet("CMAKE_WARN_DEPRECATED") ||
this->Makefile->IsOn("CMAKE_WARN_DEPRECATED"))) {
type = cmake::DEPRECATION_WARNING; type = cmake::DEPRECATION_WARNING;
} else { } else {
return true; return true;

View File

@ -2447,19 +2447,11 @@ void cmake::RunCheckForUnusedVariables()
#endif #endif
} }
bool cmake::GetSuppressDevWarnings(cmMakefile const* mf) const bool cmake::GetSuppressDevWarnings() const
{ {
/* const char* cacheEntryValue =
* The suppression CMake variable may be set in the CMake configuration file this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_WARNINGS");
* itself, so we have to check what its set to in the makefile if we can. return cmSystemTools::IsOn(cacheEntryValue);
*/
if (mf) {
return mf->IsOn("CMAKE_SUPPRESS_DEVELOPER_WARNINGS");
} else {
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_WARNINGS");
return cmSystemTools::IsOn(cacheEntryValue);
}
} }
void cmake::SetSuppressDevWarnings(bool b) void cmake::SetSuppressDevWarnings(bool b)
@ -2481,20 +2473,11 @@ void cmake::SetSuppressDevWarnings(bool b)
cmState::INTERNAL); cmState::INTERNAL);
} }
bool cmake::GetSuppressDeprecatedWarnings(cmMakefile const* mf) const bool cmake::GetSuppressDeprecatedWarnings() const
{ {
/* const char* cacheEntryValue =
* The suppression CMake variable may be set in the CMake configuration file this->State->GetCacheEntryValue("CMAKE_WARN_DEPRECATED");
* itself, so we have to check what its set to in the makefile if we can. return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
*/
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);
}
} }
void cmake::SetSuppressDeprecatedWarnings(bool b) void cmake::SetSuppressDeprecatedWarnings(bool b)
@ -2516,16 +2499,11 @@ void cmake::SetSuppressDeprecatedWarnings(bool b)
cmState::INTERNAL); cmState::INTERNAL);
} }
bool cmake::GetDevWarningsAsErrors(cmMakefile const* mf) const bool cmake::GetDevWarningsAsErrors() const
{ {
if (mf) { const char* cacheEntryValue =
return (mf->IsSet("CMAKE_SUPPRESS_DEVELOPER_ERRORS") && this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_ERRORS");
!mf->IsOn("CMAKE_SUPPRESS_DEVELOPER_ERRORS")); return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
} else {
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_ERRORS");
return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
}
} }
void cmake::SetDevWarningsAsErrors(bool b) void cmake::SetDevWarningsAsErrors(bool b)
@ -2547,15 +2525,11 @@ void cmake::SetDevWarningsAsErrors(bool b)
cmState::INTERNAL); cmState::INTERNAL);
} }
bool cmake::GetDeprecatedWarningsAsErrors(cmMakefile const* mf) const bool cmake::GetDeprecatedWarningsAsErrors() const
{ {
if (mf) { const char* cacheEntryValue =
return mf->IsOn("CMAKE_ERROR_DEPRECATED"); this->State->GetCacheEntryValue("CMAKE_ERROR_DEPRECATED");
} else { return cmSystemTools::IsOn(cacheEntryValue);
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_ERROR_DEPRECATED");
return cmSystemTools::IsOn(cacheEntryValue);
}
} }
void cmake::SetDeprecatedWarningsAsErrors(bool b) void cmake::SetDeprecatedWarningsAsErrors(bool b)

View File

@ -339,7 +339,7 @@ public:
* Returns false, by default, if developer warnings should be shown, true * Returns false, by default, if developer warnings should be shown, true
* otherwise. * otherwise.
*/ */
bool GetSuppressDevWarnings(cmMakefile const* mf = NULL) const; bool GetSuppressDevWarnings() const;
/* /*
* Set the state of the suppression of developer (author) warnings. * Set the state of the suppression of developer (author) warnings.
*/ */
@ -350,7 +350,7 @@ public:
* Returns false, by default, if deprecated warnings should be shown, true * Returns false, by default, if deprecated warnings should be shown, true
* otherwise. * otherwise.
*/ */
bool GetSuppressDeprecatedWarnings(cmMakefile const* mf = NULL) const; bool GetSuppressDeprecatedWarnings() const;
/* /*
* Set the state of the suppression of deprecated warnings. * Set the state of the suppression of deprecated warnings.
*/ */
@ -361,7 +361,7 @@ public:
* Returns false, by default, if warnings should not be treated as errors, * Returns false, by default, if warnings should not be treated as errors,
* true otherwise. * true otherwise.
*/ */
bool GetDevWarningsAsErrors(cmMakefile const* mf = NULL) const; bool GetDevWarningsAsErrors() const;
/** /**
* Set the state of treating developer (author) warnings as errors. * Set the state of treating developer (author) warnings as errors.
*/ */
@ -372,7 +372,7 @@ public:
* Returns false, by default, if warnings should not be treated as errors, * Returns false, by default, if warnings should not be treated as errors,
* true otherwise. * true otherwise.
*/ */
bool GetDeprecatedWarningsAsErrors(cmMakefile const* mf = NULL) const; bool GetDeprecatedWarningsAsErrors() const;
/** /**
* Set the state of treating developer (author) warnings as errors. * Set the state of treating developer (author) warnings as errors.
*/ */

View File

@ -2,6 +2,8 @@ include(RunCMake)
run_cmake(defaultmessage) run_cmake(defaultmessage)
run_cmake(nomessage) run_cmake(nomessage)
run_cmake(message-internal-warning)
run_cmake(nomessage-internal-warning)
run_cmake(warnmessage) run_cmake(warnmessage)
# message command sets fatal occurred flag, so check each type of error # message command sets fatal occurred flag, so check each type of error

View File

@ -0,0 +1,13 @@
^CMake Warning \(dev\) in message-internal-warning.cmake:
A logical block opening on the line
.*Tests/RunCMake/message/message-internal-warning.cmake:4 \(macro\)
closes on the line
.*Tests/RunCMake/message/message-internal-warning.cmake:5 \(endmacro\)
with mis-matching arguments.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.$

View File

@ -0,0 +1,5 @@
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON)
macro(mymacro)
endmacro(notmymacro)

View File

@ -0,0 +1,5 @@
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON CACHE BOOL "")
macro(mymacro)
endmacro(notmymacro)