diff options
Diffstat (limited to 'Source/cmaketest.cxx')
-rw-r--r-- | Source/cmaketest.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Source/cmaketest.cxx b/Source/cmaketest.cxx index 8756601..571e2f7 100644 --- a/Source/cmaketest.cxx +++ b/Source/cmaketest.cxx @@ -3,6 +3,9 @@ #include "cmake.h" #include "cmListFileCache.h" #include "cmMakefileGenerator.h" +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__) +#include "windows.h" +#endif // this is a test driver program for cmake. int main (int argc, char *argv[]) @@ -60,8 +63,21 @@ int main (int argc, char *argv[]) cmListFileCache::GetInstance()->ClearCache(); // now build the test std::string makeCommand = MAKEPROGRAM; - makeCommand += " "; #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__) + // if there are spaces in the makeCommand, assume a full path + // and convert it to a path with no spaces in it as the + // RunCommand does not like spaces + if(makeCommand.find(' ') != std::string::npos) + { + char *buffer = new char[makeCommand.size()+1]; + if(GetShortPathName(makeCommand.c_str(), buffer, + makeCommand.size()+1) != 0) + { + makeCommand = buffer; + delete [] buffer; + } + } + makeCommand += " "; makeCommand += executableName; makeCommand += ".dsw /MAKE \"ALL_BUILD - Debug\" /REBUILD"; #else |