CMake/Source/cmTest.cxx
Stephen Kelly 5181fae264 cmPropertyMap: Remove chaining logic.
The chaining logic doesn't belong to the container, and the
CMakeInstance pointer doesn't need to be in cmPropertyMap.

Size goes from 56 to 48 bytes with GNU libstdc++-5.1.
2015-06-07 09:29:31 +02:00

83 lines
2.5 KiB
C++

/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmTest.h"
#include "cmSystemTools.h"
#include "cmake.h"
#include "cmMakefile.h"
//----------------------------------------------------------------------------
cmTest::cmTest(cmMakefile* mf)
: Backtrace(mf->GetBacktrace())
{
this->Makefile = mf;
this->OldStyle = true;
}
//----------------------------------------------------------------------------
cmTest::~cmTest()
{
}
//----------------------------------------------------------------------------
cmListFileBacktrace const& cmTest::GetBacktrace() const
{
return this->Backtrace;
}
//----------------------------------------------------------------------------
void cmTest::SetName(const std::string& name)
{
this->Name = name;
}
//----------------------------------------------------------------------------
void cmTest::SetCommand(std::vector<std::string> const& command)
{
this->Command = command;
}
//----------------------------------------------------------------------------
const char *cmTest::GetProperty(const std::string& prop) const
{
const char *retVal = this->Properties.GetPropertyValue(prop);
if (!retVal)
{
const bool chain = this->Makefile->GetState()->
IsPropertyChained(prop, cmProperty::TEST);
if (chain)
{
return this->Makefile->GetProperty(prop, chain);
}
}
return retVal;
}
//----------------------------------------------------------------------------
bool cmTest::GetPropertyAsBool(const std::string& prop) const
{
return cmSystemTools::IsOn(this->GetProperty(prop));
}
//----------------------------------------------------------------------------
void cmTest::SetProperty(const std::string& prop, const char* value)
{
this->Properties.SetProperty(prop, value);
}
//----------------------------------------------------------------------------
void cmTest::AppendProperty(const std::string& prop,
const char* value, bool asString)
{
this->Properties.AppendProperty(prop, value, asString);
}