summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMessageCommand.cxx3
-rw-r--r--Source/cmake.cxx25
-rw-r--r--Source/cmake.h6
3 files changed, 28 insertions, 6 deletions
diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index 1c65ef7dd0..fd0345d0bb 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 62476a11a1..5213130011 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 0630daa841..45ac28ebd6 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,