ENH: small simple projects do not need to specify cmake minimum required
This commit is contained in:
parent
36c37a60b0
commit
a568a8552d
|
@ -134,8 +134,41 @@ bool cmListFile::ParseFile(const char* filename,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if no version command is found this is a warning or error
|
// if no policy command is found this is an error if they use any non advanced functions or a lot of functions
|
||||||
if(!hasVersion)
|
if(!hasVersion)
|
||||||
|
{
|
||||||
|
bool isProblem = true;
|
||||||
|
if (this->Functions.size() < 30)
|
||||||
|
{
|
||||||
|
// the list of simple commands DO NOT ADD TO THIS LIST!!!!!
|
||||||
|
// these commands must have backwards compatibility forever and
|
||||||
|
// and that is a lot longer than your tiny mind can comprehend mortal
|
||||||
|
std::set<std::string> allowedCommands;
|
||||||
|
allowedCommands.insert("project");
|
||||||
|
allowedCommands.insert("set");
|
||||||
|
allowedCommands.insert("if");
|
||||||
|
allowedCommands.insert("endif");
|
||||||
|
allowedCommands.insert("else");
|
||||||
|
allowedCommands.insert("elseif");
|
||||||
|
allowedCommands.insert("add_executable");
|
||||||
|
allowedCommands.insert("add_library");
|
||||||
|
allowedCommands.insert("target_link_libraries");
|
||||||
|
allowedCommands.insert("option");
|
||||||
|
allowedCommands.insert("message");
|
||||||
|
isProblem = false;
|
||||||
|
for(std::vector<cmListFileFunction>::iterator i
|
||||||
|
= this->Functions.begin();
|
||||||
|
i != this->Functions.end(); ++i)
|
||||||
|
{
|
||||||
|
std::string name = cmSystemTools::LowerCase(i->Name);
|
||||||
|
if (allowedCommands.find(name) == allowedCommands.end())
|
||||||
|
{
|
||||||
|
isProblem = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isProblem)
|
||||||
{
|
{
|
||||||
cmOStringStream msg;
|
cmOStringStream msg;
|
||||||
msg << "No cmake_minimum_required command is present. "
|
msg << "No cmake_minimum_required command is present. "
|
||||||
|
@ -162,6 +195,7 @@ bool cmListFile::ParseFile(const char* filename,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(topLevel)
|
if(topLevel)
|
||||||
|
|
Loading…
Reference in New Issue