Only set the property if the property was given

This commit is contained in:
Ben Boeckel 2011-01-20 14:05:39 -05:00
parent b6c302b1aa
commit d94f9c6487

View File

@ -74,8 +74,7 @@ bool cmAddTestCommand::HandleNameMode(std::vector<std::string> const& args)
{
std::string name;
std::vector<std::string> configurations;
std::string working_directory = this->Makefile->GetCurrentOutputDirectory();
bool working_directory_set = false;
std::string working_directory;
std::vector<std::string> command;
// Read the arguments.
@ -109,13 +108,12 @@ bool cmAddTestCommand::HandleNameMode(std::vector<std::string> const& args)
}
else if(args[i] == "WORKING_DIRECTORY")
{
if(working_directory_set)
if(!working_directory.empty())
{
this->SetError(" may be given at most one WORKING_DIRECTORY.");
return false;
}
doing = DoingWorkingDirectory;
working_directory_set = true;
}
else if(doing == DoingName)
{
@ -172,7 +170,10 @@ bool cmAddTestCommand::HandleNameMode(std::vector<std::string> const& args)
cmTest* test = this->Makefile->CreateTest(name.c_str());
test->SetOldStyle(false);
test->SetCommand(command);
test->SetProperty("WORKING_DIRECTORY", working_directory.c_str());
if(!working_directory.empty())
{
test->SetProperty("WORKING_DIRECTORY", working_directory.c_str());
}
this->Makefile->AddTestGenerator(new cmTestGenerator(test, configurations));
return true;