cmTestGenerator: Separate test properties for each configuration
Move property generation from GenerateScriptConfigs to separate copies in GenerateOldStyle and GenerateScriptForConfig. This causes the per-config tests generated for the add_test(NAME) signature to each get their own test properties. This will allow us to later change the property values based on the test configuration. While at it, generate lower-case CMake code (e.g. set_tests_properties). Inspired-by: Ben Boeckel <mathstuf@gmail.com>
This commit is contained in:
parent
7324eb896e
commit
6fe5c4afc0
|
@ -39,29 +39,8 @@ cmTestGenerator
|
|||
void cmTestGenerator::GenerateScriptConfigs(std::ostream& os,
|
||||
Indent const& indent)
|
||||
{
|
||||
// First create the tests.
|
||||
// Create the tests.
|
||||
this->cmScriptGenerator::GenerateScriptConfigs(os, indent);
|
||||
|
||||
// Now generate the test properties.
|
||||
if(this->TestGenerated)
|
||||
{
|
||||
cmTest* test = this->Test;
|
||||
cmMakefile* mf = test->GetMakefile();
|
||||
cmLocalGenerator* lg = mf->GetLocalGenerator();
|
||||
std::ostream& fout = os;
|
||||
cmPropertyMap::const_iterator pit;
|
||||
cmPropertyMap* mpit = &test->GetProperties();
|
||||
if ( mpit->size() )
|
||||
{
|
||||
fout << "SET_TESTS_PROPERTIES(" << test->GetName() << " PROPERTIES ";
|
||||
for ( pit = mpit->begin(); pit != mpit->end(); ++ pit )
|
||||
{
|
||||
fout << " " << pit->first
|
||||
<< " " << lg->EscapeForCMake(pit->second.GetValue());
|
||||
}
|
||||
fout << ")" << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -127,6 +106,21 @@ void cmTestGenerator::GenerateScriptForConfig(std::ostream& os,
|
|||
|
||||
// Finish the test command.
|
||||
os << ")\n";
|
||||
|
||||
// Output properties for the test.
|
||||
cmPropertyMap& pm = this->Test->GetProperties();
|
||||
if(!pm.empty())
|
||||
{
|
||||
os << indent << "set_tests_properties(" << this->Test->GetName()
|
||||
<< " PROPERTIES ";
|
||||
for(cmPropertyMap::const_iterator i = pm.begin();
|
||||
i != pm.end(); ++i)
|
||||
{
|
||||
os << " " << i->first
|
||||
<< " " << lg->EscapeForCMake(i->second.GetValue());
|
||||
}
|
||||
os << ")" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -181,4 +175,21 @@ void cmTestGenerator::GenerateOldStyle(std::ostream& fout,
|
|||
fout << "\"";
|
||||
}
|
||||
fout << ")" << std::endl;
|
||||
|
||||
// Output properties for the test.
|
||||
cmMakefile* mf = this->Test->GetMakefile();
|
||||
cmLocalGenerator* lg = mf->GetLocalGenerator();
|
||||
cmPropertyMap& pm = this->Test->GetProperties();
|
||||
if(!pm.empty())
|
||||
{
|
||||
fout << indent << "set_tests_properties(" << this->Test->GetName()
|
||||
<< " PROPERTIES ";
|
||||
for(cmPropertyMap::const_iterator i = pm.begin();
|
||||
i != pm.end(); ++i)
|
||||
{
|
||||
fout << " " << i->first
|
||||
<< " " << lg->EscapeForCMake(i->second.GetValue());
|
||||
}
|
||||
fout << ")" << std::endl;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue