ENH: make sure properties are re-set on each configure

This commit is contained in:
Bill Hoffman 2008-03-12 17:02:30 -04:00
parent f64d3d0b77
commit 8bf388109d
2 changed files with 18 additions and 9 deletions

View File

@ -146,15 +146,7 @@ cmake::cmake()
this->FileComparison = new cmFileTimeComparison;
this->Policies = new cmPolicies();
this->Properties.SetCMakeInstance(this);
// initialize properties
cmSourceFile::DefineProperties(this);
cmTarget::DefineProperties(this);
cmMakefile::DefineProperties(this);
cmTest::DefineProperties(this);
cmake::DefineProperties(this);
this->InitializeProperties();
#ifdef __APPLE__
struct rlimit rlp;
@ -224,8 +216,24 @@ cmake::~cmake()
delete this->FileComparison;
}
void cmake::InitializeProperties()
{
this->Properties.clear();
this->Properties.SetCMakeInstance(this);
// initialize properties
cmSourceFile::DefineProperties(this);
cmTarget::DefineProperties(this);
cmMakefile::DefineProperties(this);
cmTest::DefineProperties(this);
cmake::DefineProperties(this);
this->AccessedProperties.clear();
this->PropertyDefinitions.clear();
}
void cmake::CleanupCommandsAndMacros()
{
this->InitializeProperties();
std::vector<cmCommand*> commands;
for(RegisteredCommandsMap::iterator j = this->Commands.begin();
j != this->Commands.end(); ++j)

View File

@ -349,6 +349,7 @@ class cmake
this->SuppressDevWarnings = v;
}
protected:
void InitializeProperties();
int HandleDeleteCacheVariables(const char* var);
cmPropertyMap Properties;
std::set<std::pair<cmStdString,cmProperty::ScopeType> > AccessedProperties;