summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2009-01-20 10:06:39 -0500
committerBill Hoffman <bill.hoffman@kitware.com>2009-01-20 10:06:39 -0500
commit7f92b77997dcc5fa2d1e9455ad2d494fceea9786 (patch)
tree767a58a9bb6bd7491608dc6e9ecfbd880d295438 /Source
parent57896e296f9c553052626bbe971c24fa1a16bc6b (diff)
downloadcmake-7f92b77997dcc5fa2d1e9455ad2d494fceea9786.tar.gz
BUG: fix crash with cmd.exe shell and cmake in the path
Diffstat (limited to 'Source')
-rw-r--r--Source/cmSystemTools.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 6c49a144dd..0ef750859f 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -2242,6 +2242,14 @@ bool cmSystemTools::FileTimeSet(const char* fname, cmSystemToolsFileTime* t)
static std::string cmSystemToolsExecutableDirectory;
void cmSystemTools::FindExecutableDirectory(const char* argv0)
{
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ (void)argv0; // ignore this on windows
+ char modulepath[_MAX_PATH];
+ ::GetModuleFileName(NULL, modulepath, sizeof(modulepath));
+ cmSystemToolsExecutableDirectory =
+ cmSystemTools::GetFilenamePath(modulepath);
+ return;
+#else
std::string errorMsg;
std::string exe;
if(cmSystemTools::FindProgramPath(argv0, exe, errorMsg))
@@ -2255,6 +2263,7 @@ void cmSystemTools::FindExecutableDirectory(const char* argv0)
{
// ???
}
+#endif
}
//----------------------------------------------------------------------------