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) unsigned int CCONV cmGetCacheMajorVersion(void *arg)
{ {
cmMakefile *mf = static_cast<cmMakefile *>(arg); cmMakefile *mf = static_cast<cmMakefile *>(arg);
cmCacheManager *manager = mf->GetCMakeInstance()->GetCacheManager(); cmState *state = mf->GetState();
return manager->GetCacheMajorVersion(); return state->GetCacheMajorVersion();
} }
unsigned int CCONV cmGetCacheMinorVersion(void *arg) unsigned int CCONV cmGetCacheMinorVersion(void *arg)
{ {
cmMakefile *mf = static_cast<cmMakefile *>(arg); cmMakefile *mf = static_cast<cmMakefile *>(arg);
cmCacheManager *manager = mf->GetCMakeInstance()->GetCacheManager(); cmState *state = mf->GetState();
return manager->GetCacheMinorVersion(); return state->GetCacheMinorVersion();
} }
unsigned int CCONV cmGetMajorVersion(void *) unsigned int CCONV cmGetMajorVersion(void *)

View File

@ -677,6 +677,16 @@ bool cmState::UseMSYSShell() const
return this->MSYSShell; 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 const char* cmState::GetBinaryDirectory() const
{ {
return this->BinaryDirectory.c_str(); return this->BinaryDirectory.c_str();

View File

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

View File

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