|
|
@@ -4,6 +4,8 @@
|
|
|
#include "Fl/filename.H"
|
|
|
#include "Fl/fl_ask.H"
|
|
|
#include "cstring"
|
|
|
+#include "../cmCacheManager.h"
|
|
|
+#include "../cmMakefile.h"
|
|
|
|
|
|
|
|
|
|
|
|
@@ -212,8 +214,131 @@ CMakeSetupGUIImplementation
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- fl_message("Building project files ... please wait");
|
|
|
+ SaveCacheFromGUI();
|
|
|
+
|
|
|
+ fl_message("Building project files ... please wait");
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+
|
|
|
+/**
|
|
|
+ * Load Cache from disk to GUI
|
|
|
+ */
|
|
|
+void
|
|
|
+CMakeSetupGUIImplementation
|
|
|
+::LoadCacheFromDiskToGUI( void )
|
|
|
+{
|
|
|
+
|
|
|
+ const char * m_WhereBuild = binaryPathTextInput->value();
|
|
|
+
|
|
|
+ if( m_WhereBuild != "" )
|
|
|
+ {
|
|
|
+ cmCacheManager::GetInstance()->LoadCache(m_WhereBuild);
|
|
|
+
|
|
|
+ // Make sure the internal "CMAKE" cache entry is set.
|
|
|
+ const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue("CMAKE");
|
|
|
+ if(!cacheValue)
|
|
|
+ {
|
|
|
+ // Find our own exectuable.
|
|
|
+ std::string cMakeCMD = "\""+cmSystemTools::GetProgramPath(_pgmptr);
|
|
|
+ cMakeCMD += "/CMakeSetupCMD.exe\"";
|
|
|
+
|
|
|
+ // Save the value in the cache
|
|
|
+ cmCacheManager::GetInstance()->AddCacheEntry("CMAKE",
|
|
|
+ cMakeCMD.c_str(),
|
|
|
+ "Path to CMake executable.",
|
|
|
+ cmCacheManager::INTERNAL);
|
|
|
+ }
|
|
|
+
|
|
|
+ this->FillCacheGUIFromCacheManager();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+/**
|
|
|
+ * Save Cache from disk to GUI
|
|
|
+ */
|
|
|
+void
|
|
|
+CMakeSetupGUIImplementation
|
|
|
+::SaveCacheFromGUI( void )
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Fill Cache GUI from cache manager
|
|
|
+ */
|
|
|
+void
|
|
|
+CMakeSetupGUIImplementation
|
|
|
+::FillCacheGUIFromCacheManager( void )
|
|
|
+{
|
|
|
+ const cmCacheManager::CacheEntryMap &cache =
|
|
|
+ cmCacheManager::GetInstance()->GetCacheMap();
|
|
|
+ for(cmCacheManager::CacheEntryMap::const_iterator i = cache.begin();
|
|
|
+ i != cache.end(); ++i)
|
|
|
+ {
|
|
|
+ const char* key = i->first.c_str();
|
|
|
+ const cmCacheManager::CacheEntry& value = i->second;
|
|
|
+ /*
|
|
|
+ switch(value.m_Type )
|
|
|
+ {
|
|
|
+ case cmCacheManager::BOOL:
|
|
|
+ if(cmCacheManager::GetInstance()->IsOn(key))
|
|
|
+ {
|
|
|
+ m_CacheEntriesList.AddProperty(key,
|
|
|
+ "ON",
|
|
|
+ value.m_HelpString.c_str(),
|
|
|
+ CPropertyList::CHECKBOX,"");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ m_CacheEntriesList.AddProperty(key,
|
|
|
+ "OFF",
|
|
|
+ value.m_HelpString.c_str(),
|
|
|
+ CPropertyList::CHECKBOX,"");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case cmCacheManager::PATH:
|
|
|
+ m_CacheEntriesList.AddProperty(key,
|
|
|
+ value.m_Value.c_str(),
|
|
|
+ value.m_HelpString.c_str(),
|
|
|
+ CPropertyList::PATH,"");
|
|
|
+ break;
|
|
|
+ case cmCacheManager::FILEPATH:
|
|
|
+ m_CacheEntriesList.AddProperty(key,
|
|
|
+ value.m_Value.c_str(),
|
|
|
+ value.m_HelpString.c_str(),
|
|
|
+ CPropertyList::FILE,"");
|
|
|
+ break;
|
|
|
+ case cmCacheManager::STRING:
|
|
|
+ m_CacheEntriesList.AddProperty(key,
|
|
|
+ value.m_Value.c_str(),
|
|
|
+ value.m_HelpString.c_str(),
|
|
|
+ CPropertyList::EDIT,"");
|
|
|
+ break;
|
|
|
+ case cmCacheManager::INTERNAL:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ */
|
|
|
+ }
|
|
|
+ this->UpdateData(false);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * UpdateData
|
|
|
+ */
|
|
|
+void
|
|
|
+CMakeSetupGUIImplementation
|
|
|
+::UpdateData( bool option )
|
|
|
+{
|
|
|
+ dialogWindow->redraw();
|
|
|
+ Fl::check();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|