Commit bf0c200f authored by Brad King's avatar Brad King
Browse files

ENH: Added cmTarget::GetLanguages method to centralize computation of the list...

ENH: Added cmTarget::GetLanguages method to centralize computation of the list of languages compiled in a target.  Transformed NeedRequiresStep to use it.
parent 1c508b94
......@@ -731,8 +731,7 @@ cmGlobalUnixMakefileGenerator3
makefileName = localName;
makefileName += "/build.make";
bool needRequiresStep =
this->NeedRequiresStep(lg,t->second.GetName());
bool needRequiresStep = this->NeedRequiresStep(t->second);
lg->WriteDivider(ruleFileStream);
ruleFileStream
......@@ -1168,18 +1167,17 @@ void cmGlobalUnixMakefileGenerator3::WriteHelpRule
bool cmGlobalUnixMakefileGenerator3
::NeedRequiresStep(cmLocalUnixMakefileGenerator3 *lg,const char *name)
::NeedRequiresStep(cmTarget const& target)
{
std::map<cmStdString,cmLocalUnixMakefileGenerator3::IntegrityCheckSet>&
checkSet = lg->GetIntegrityCheckSet()[name];
for(std::map<cmStdString,
cmLocalUnixMakefileGenerator3::IntegrityCheckSet>::const_iterator
l = checkSet.begin(); l != checkSet.end(); ++l)
{
std::string name2 = "CMAKE_NEEDS_REQUIRES_STEP_";
name2 += l->first;
name2 += "_FLAG";
if(lg->GetMakefile()->GetDefinition(name2.c_str()))
std::set<cmStdString> languages;
target.GetLanguages(languages);
for(std::set<cmStdString>::const_iterator l = languages.begin();
l != languages.end(); ++l)
{
std::string var = "CMAKE_NEEDS_REQUIRES_STEP_";
var += *l;
var += "_FLAG";
if(target.GetMakefile()->GetDefinition(var.c_str()))
{
return true;
}
......
......@@ -165,7 +165,7 @@ protected:
cmTarget &target);
// does this generator need a requires step for any of its targets
bool NeedRequiresStep(cmLocalUnixMakefileGenerator3 *lg, const char *);
bool NeedRequiresStep(cmTarget const&);
// Setup target names
virtual const char* GetAllTargetName() { return "all"; }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment