Commit a63f7ba4 authored by Bill Hoffman's avatar Bill Hoffman
Browse files

BUG: fix load command stuff for cygwin and cleanup at exit

parent 04d8ba68
......@@ -7,6 +7,7 @@
#include "CMakeCommandLineInfo.h"
#include "../cmListFileCache.h"
#include "../cmCacheManager.h"
#include "../cmDynamicLoader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
......@@ -77,6 +78,7 @@ BOOL CMakeSetup::InitInstance()
// clean up globals
cmListFileCache::GetInstance()->ClearCache();
cmDynamicLoader::FlushCache();
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
......
......@@ -32,6 +32,7 @@ cmTarget.o \
cmCustomCommand.o \
cmCacheManager.o \
cmListFileCache.o \
cmDynamicLoader.o \
cmSourceGroup.o
DEPENDS = cmConfigure.h
......@@ -53,6 +54,7 @@ cmLocalUnixMakefileGenerator.o : $(DEPENDS)
cmCommands.o : $(DEPENDS) $(srcdir)/*Command*.cxx
cmTarget.o : $(DEPENDS)
cmCacheManager.o : $(DEPENDS)
cmDynamicLoader.o : $(DEPENDS)
cmSourceGroup.o : $(DEPENDS)
......
......@@ -44,7 +44,6 @@ cmDynamicLoaderCache* cmDynamicLoaderCache::Instance = 0;
cmDynamicLoaderCache::~cmDynamicLoaderCache()
{
this->FlushCache();
}
void cmDynamicLoaderCache::CacheFile(const char* path, const cmLibHandle& p)
......@@ -71,13 +70,16 @@ bool cmDynamicLoaderCache::GetCacheFile(const char* path, cmLibHandle& p)
bool cmDynamicLoaderCache::FlushCache(const char* path)
{
std::map<std::string, cmLibHandle>::iterator it = m_CacheMap.find(path);
bool ret = false;
if ( it != m_CacheMap.end() )
{
cmDynamicLoader::CloseLibrary(it->second);
m_CacheMap.erase(it);
return true;
ret = true;
}
return false;
delete cmDynamicLoaderCache::Instance;
cmDynamicLoaderCache::Instance = 0;
return ret;
}
void cmDynamicLoaderCache::FlushCache()
......
......@@ -17,8 +17,20 @@
#include "cmakewizard.h"
#include "cmake.h"
#include "cmCacheManager.h"
#include "cmDynamicLoader.h"
#include "cmListFileCache.h"
int do_cmake(int ac, char** av);
int main(int ac, char** av)
{
int ret = do_cmake(ac, av);
cmDynamicLoader::FlushCache();
cmListFileCache::GetInstance()->ClearCache();
return ret;
}
int do_cmake(int ac, char** av)
{
bool wiz = false;
bool command = false;
......@@ -54,6 +66,5 @@ int main(int ac, char** av)
return 0;
}
cmake cm;
int ret = cm.Run(args);
return ret;
return cm.Run(args);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment