cmState: Add API for cache version.

This commit is contained in:
Stephen Kelly 2015-10-10 14:34:26 +02:00
parent 95b0d761a7
commit b5212c68de
4 changed files with 21 additions and 10 deletions

View File

@ -51,14 +51,14 @@ void CCONV cmSetError(void *info, const char *err)
unsigned int CCONV cmGetCacheMajorVersion(void *arg)
{
cmMakefile *mf = static_cast<cmMakefile *>(arg);
cmCacheManager *manager = mf->GetCMakeInstance()->GetCacheManager();
return manager->GetCacheMajorVersion();
cmState *state = mf->GetState();
return state->GetCacheMajorVersion();
}
unsigned int CCONV cmGetCacheMinorVersion(void *arg)
{
cmMakefile *mf = static_cast<cmMakefile *>(arg);
cmCacheManager *manager = mf->GetCMakeInstance()->GetCacheManager();
return manager->GetCacheMinorVersion();
cmState *state = mf->GetState();
return state->GetCacheMinorVersion();
}
unsigned int CCONV cmGetMajorVersion(void *)

View File

@ -677,6 +677,16 @@ bool cmState::UseMSYSShell() const
return this->MSYSShell;
}
unsigned int cmState::GetCacheMajorVersion() const
{
return this->CMakeInstance->GetCacheManager()->GetCacheMajorVersion();
}
unsigned int cmState::GetCacheMinorVersion() const
{
return this->CMakeInstance->GetCacheManager()->GetCacheMinorVersion();
}
const char* cmState::GetBinaryDirectory() const
{
return this->BinaryDirectory.c_str();

View File

@ -302,6 +302,9 @@ public:
void SetMSYSShell(bool mSYSShell);
bool UseMSYSShell() const;
unsigned int GetCacheMajorVersion() const;
unsigned int GetCacheMinorVersion() const;
private:
friend class cmake;
void AddCacheEntry(const std::string& key, const char* value,

View File

@ -11,8 +11,6 @@
============================================================================*/
#include "cmUtilitySourceCommand.h"
#include "cmCacheManager.h"
// cmUtilitySourceCommand
bool cmUtilitySourceCommand
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
@ -54,13 +52,13 @@ bool cmUtilitySourceCommand
}
else
{
cmCacheManager *manager =
this->Makefile->GetCMakeInstance()->GetCacheManager();
cmState *state =
this->Makefile->GetState();
haveCacheValue = (cacheValue &&
(strstr(cacheValue, "(IntDir)") == 0 ||
(intDir && strcmp(intDir, "$(IntDir)") == 0)) &&
(manager->GetCacheMajorVersion() != 0 &&
manager->GetCacheMinorVersion() != 0 ));
(state->GetCacheMajorVersion() != 0 &&
state->GetCacheMinorVersion() != 0 ));
}
if(haveCacheValue)