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

View File

@ -2447,19 +2447,11 @@ void cmake::RunCheckForUnusedVariables()
#endif
}
bool cmake::GetSuppressDevWarnings(cmMakefile const* mf) const
bool cmake::GetSuppressDevWarnings() const
{
/*
* 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);
}
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_WARNINGS");
return cmSystemTools::IsOn(cacheEntryValue);
}
void cmake::SetSuppressDevWarnings(bool b)
@ -2481,20 +2473,11 @@ void cmake::SetSuppressDevWarnings(bool b)
cmState::INTERNAL);
}
bool cmake::GetSuppressDeprecatedWarnings(cmMakefile const* mf) const
bool cmake::GetSuppressDeprecatedWarnings() const
{
/*
* 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);
}
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_WARN_DEPRECATED");
return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
}
void cmake::SetSuppressDeprecatedWarnings(bool b)
@ -2516,16 +2499,11 @@ void cmake::SetSuppressDeprecatedWarnings(bool b)
cmState::INTERNAL);
}
bool cmake::GetDevWarningsAsErrors(cmMakefile const* mf) const
bool cmake::GetDevWarningsAsErrors() const
{
if (mf) {
return (mf->IsSet("CMAKE_SUPPRESS_DEVELOPER_ERRORS") &&
!mf->IsOn("CMAKE_SUPPRESS_DEVELOPER_ERRORS"));
} else {
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_ERRORS");
return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
}
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_SUPPRESS_DEVELOPER_ERRORS");
return cacheEntryValue && cmSystemTools::IsOff(cacheEntryValue);
}
void cmake::SetDevWarningsAsErrors(bool b)
@ -2547,15 +2525,11 @@ void cmake::SetDevWarningsAsErrors(bool b)
cmState::INTERNAL);
}
bool cmake::GetDeprecatedWarningsAsErrors(cmMakefile const* mf) const
bool cmake::GetDeprecatedWarningsAsErrors() const
{
if (mf) {
return mf->IsOn("CMAKE_ERROR_DEPRECATED");
} else {
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_ERROR_DEPRECATED");
return cmSystemTools::IsOn(cacheEntryValue);
}
const char* cacheEntryValue =
this->State->GetCacheEntryValue("CMAKE_ERROR_DEPRECATED");
return cmSystemTools::IsOn(cacheEntryValue);
}
void cmake::SetDeprecatedWarningsAsErrors(bool b)

View File

@ -339,7 +339,7 @@ public:
* Returns false, by default, if developer warnings should be shown, true
* otherwise.
*/
bool GetSuppressDevWarnings(cmMakefile const* mf = NULL) const;
bool GetSuppressDevWarnings() const;
/*
* 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
* otherwise.
*/
bool GetSuppressDeprecatedWarnings(cmMakefile const* mf = NULL) const;
bool GetSuppressDeprecatedWarnings() const;
/*
* 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,
* true otherwise.
*/
bool GetDevWarningsAsErrors(cmMakefile const* mf = NULL) const;
bool GetDevWarningsAsErrors() const;
/**
* 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,
* true otherwise.
*/
bool GetDeprecatedWarningsAsErrors(cmMakefile const* mf = NULL) const;
bool GetDeprecatedWarningsAsErrors() const;
/**
* Set the state of treating developer (author) warnings as errors.
*/

View File

@ -2,6 +2,8 @@ include(RunCMake)
run_cmake(defaultmessage)
run_cmake(nomessage)
run_cmake(message-internal-warning)
run_cmake(nomessage-internal-warning)
run_cmake(warnmessage)
# 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)