mirror of
https://github.com/reactos/CMake.git
synced 2024-12-14 07:09:22 +00:00
Merge topic 'fix-Message-API-ISP-violation'
0a4af073
cmake: Issue message independent of cmMakefile definition
This commit is contained in:
commit
3b14a4bca4
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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
|
||||
|
||||
|
13
Tests/RunCMake/message/message-internal-warning-stderr.txt
Normal file
13
Tests/RunCMake/message/message-internal-warning-stderr.txt
Normal 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.$
|
5
Tests/RunCMake/message/message-internal-warning.cmake
Normal file
5
Tests/RunCMake/message/message-internal-warning.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON)
|
||||
|
||||
macro(mymacro)
|
||||
endmacro(notmymacro)
|
5
Tests/RunCMake/message/nomessage-internal-warning.cmake
Normal file
5
Tests/RunCMake/message/nomessage-internal-warning.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS ON CACHE BOOL "")
|
||||
|
||||
macro(mymacro)
|
||||
endmacro(notmymacro)
|
Loading…
Reference in New Issue
Block a user