summaryrefslogtreecommitdiffstats
path: root/Source/cmake.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-04-04 22:07:04 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-04-06 15:58:55 (GMT)
commit1fe7f24c2b62734d501427750586d8063149ea58 (patch)
tree8c4147687adf4fa7d83deb44d7bce82360639525 /Source/cmake.cxx
parent08c642c6ae47fd075fe1060fc0e28d8a24cc3c00 (diff)
downloadCMake-1fe7f24c2b62734d501427750586d8063149ea58.zip
CMake-1fe7f24c2b62734d501427750586d8063149ea58.tar.gz
CMake-1fe7f24c2b62734d501427750586d8063149ea58.tar.bz2
Add API for cache loading, deleting and saving to the cmake class.
Migrate existing users of the CacheManager API to use the new API. The CacheManager will be going away soon.
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r--Source/cmake.cxx39
1 files changed, 34 insertions, 5 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 5c52a1a..e781417 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -917,7 +917,7 @@ void cmake::SetDirectoriesFromFile(const char* arg)
{
cmCacheManager* cachem = this->GetCacheManager();
cmCacheManager::CacheIterator it = cachem->NewIterator();
- if(cachem->LoadCache(cachePath) &&
+ if(this->LoadCache(cachePath) &&
it.Find("CMAKE_HOME_DIRECTORY"))
{
this->SetHomeOutputDirectory(cachePath);
@@ -1860,10 +1860,18 @@ void cmake::AddDefaultGenerators()
#endif
}
+bool cmake::ParseCacheEntry(const std::string& entry,
+ std::string& var,
+ std::string& value,
+ cmCacheManager::CacheEntryType& type)
+{
+ return cmCacheManager::ParseEntry(entry, var, value, type);
+}
+
int cmake::LoadCache()
{
// could we not read the cache
- if (!this->CacheManager->LoadCache(this->GetHomeOutputDirectory()))
+ if (!this->LoadCache(this->GetHomeOutputDirectory()))
{
// if it does exist, but isn't readable then warn the user
std::string cacheFile = this->GetHomeOutputDirectory();
@@ -1886,6 +1894,28 @@ int cmake::LoadCache()
return 0;
}
+bool cmake::LoadCache(const std::string& path)
+{
+ return this->CacheManager->LoadCache(path);
+}
+
+bool cmake::LoadCache(const std::string& path, bool internal,
+ std::set<std::string>& excludes,
+ std::set<std::string>& includes)
+{
+ return this->CacheManager->LoadCache(path, internal, excludes, includes);
+}
+
+bool cmake::SaveCache(const std::string& path)
+{
+ return this->CacheManager->SaveCache(path);
+}
+
+bool cmake::DeleteCache(const std::string& path)
+{
+ return this->CacheManager->DeleteCache(path);
+}
+
void cmake::SetProgressCallback(ProgressCallbackType f, void *cd)
{
this->ProgressCallback = f;
@@ -2764,9 +2794,8 @@ int cmake::Build(const std::string& dir,
}
std::string cachePath = dir;
cmSystemTools::ConvertToUnixSlashes(cachePath);
- cmCacheManager* cachem = this->GetCacheManager();
- cmCacheManager::CacheIterator it = cachem->NewIterator();
- if(!cachem->LoadCache(cachePath))
+ cmCacheManager::CacheIterator it = this->GetCacheManager()->NewIterator();
+ if(!this->LoadCache(cachePath))
{
std::cerr << "Error: could not load cache\n";
return 1;