cmState: Add CreateBaseSnapshot method.

This commit is contained in:
Stephen Kelly 2015-05-31 00:18:33 +02:00
parent d3bb5da929
commit da28f11523
3 changed files with 16 additions and 5 deletions

View File

@ -659,12 +659,22 @@ void cmState::Snapshot::ComputeRelativePathTopBinary()
} }
} }
cmState::Snapshot cmState::CreateBaseSnapshot()
{
PositionType pos = 0;
this->ParentPositions.push_back(pos);
this->Locations.resize(1);
this->OutputLocations.resize(1);
this->CurrentSourceDirectoryComponents.resize(1);
this->CurrentBinaryDirectoryComponents.resize(1);
this->RelativePathTopSource.resize(1);
this->RelativePathTopBinary.resize(1);
return cmState::Snapshot(this, pos);
}
cmState::Snapshot cmState::CreateSnapshot(Snapshot originSnapshot) cmState::Snapshot cmState::CreateSnapshot(Snapshot originSnapshot)
{ {
if (!originSnapshot.IsValid()) assert(originSnapshot.IsValid());
{
originSnapshot.State = this;
}
PositionType pos = this->ParentPositions.size(); PositionType pos = this->ParentPositions.size();
this->ParentPositions.push_back(originSnapshot.Position); this->ParentPositions.push_back(originSnapshot.Position);
this->Locations.resize(this->Locations.size() + 1); this->Locations.resize(this->Locations.size() + 1);

View File

@ -57,6 +57,7 @@ public:
cmState::PositionType Position; cmState::PositionType Position;
}; };
Snapshot CreateBaseSnapshot();
Snapshot CreateSnapshot(Snapshot originSnapshot); Snapshot CreateSnapshot(Snapshot originSnapshot);
enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC, enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC,

View File

@ -134,7 +134,7 @@ cmake::cmake()
this->Policies = new cmPolicies(); this->Policies = new cmPolicies();
this->State = new cmState(this); this->State = new cmState(this);
this->CurrentSnapshot = this->State->CreateSnapshot(cmState::Snapshot()); this->CurrentSnapshot = this->State->CreateBaseSnapshot();
#ifdef __APPLE__ #ifdef __APPLE__
struct rlimit rlp; struct rlimit rlp;