cmMakefile: move common logic to IsProjectFile function

This commit is contained in:
Artur Ryt
2018-12-13 20:44:58 +01:00
parent f564f65ff5
commit 5257af3634
2 changed files with 11 additions and 10 deletions

View File

@@ -1848,11 +1848,7 @@ void cmMakefile::LogUnused(const char* reason, const std::string& name) const
path += "/CMakeLists.txt";
}
if (this->CheckSystemVars ||
cmSystemTools::IsSubDirectory(path, this->GetHomeDirectory()) ||
(cmSystemTools::IsSubDirectory(path, this->GetHomeOutputDirectory()) &&
!cmSystemTools::IsSubDirectory(path,
cmake::GetCMakeFilesDirectory()))) {
if (this->CheckSystemVars || this->IsProjectFile(path.c_str())) {
std::ostringstream msg;
msg << "unused variable (" << reason << ") \'" << name << "\'";
this->IssueMessage(cmake::AUTHOR_WARNING, msg.str());
@@ -2702,6 +2698,14 @@ struct t_lookup
size_t loc = 0;
};
bool cmMakefile::IsProjectFile(const char* filename) const
{
return cmSystemTools::IsSubDirectory(filename, this->GetHomeDirectory()) ||
(cmSystemTools::IsSubDirectory(filename, this->GetHomeOutputDirectory()) &&
!cmSystemTools::IsSubDirectory(filename,
cmake::GetCMakeFilesDirectory()));
}
cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
std::string& errorstr, std::string& source, bool escapeQuotes,
bool noEscapes, bool atOnly, const char* filename, long line,
@@ -2769,11 +2773,7 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
if (this->GetCMakeInstance()->GetWarnUninitialized() &&
!this->VariableInitialized(lookup)) {
if (this->CheckSystemVars ||
(filename &&
(cmSystemTools::IsSubDirectory(filename,
this->GetHomeDirectory()) ||
cmSystemTools::IsSubDirectory(
filename, this->GetHomeOutputDirectory())))) {
(filename && this->IsProjectFile(filename))) {
std::ostringstream msg;
msg << "uninitialized variable \'" << lookup << "\'";
this->IssueMessage(cmake::AUTHOR_WARNING, msg.str());

View File

@@ -866,6 +866,7 @@ public:
std::deque<std::vector<std::string>> FindPackageRootPathStack;
void MaybeWarnCMP0074(std::string const& pkg);
bool IsProjectFile(const char* filename) const;
protected:
// add link libraries and directories to the target