summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2001-10-26 15:42:02 -0400
committerBill Hoffman <bill.hoffman@kitware.com>2001-10-26 15:42:02 -0400
commit1c5c899fd7b9e0f5214f0e30b5dc64fa2508a27c (patch)
tree18146e750e78da7a94d3783248ac3cd61c1f240a /Source
parentf586f7df8d9ab5a432107e053452864598c6c0a7 (diff)
downloadcmake-1c5c899fd7b9e0f5214f0e30b5dc64fa2508a27c.tar.gz
add dependency for configure files and use short path in WIN32 cmake test
Diffstat (limited to 'Source')
-rw-r--r--Source/cmConfigureFileCommand.cxx1
-rw-r--r--Source/cmMakefile.h4
-rw-r--r--Source/cmaketest.cxx18
3 files changed, 22 insertions, 1 deletions
diff --git a/Source/cmConfigureFileCommand.cxx b/Source/cmConfigureFileCommand.cxx
index 9f482d3951..c30a63b601 100644
--- a/Source/cmConfigureFileCommand.cxx
+++ b/Source/cmConfigureFileCommand.cxx
@@ -90,6 +90,7 @@ void cmConfigureFileCommand::FinalPass()
void cmConfigureFileCommand::ConfigureFile()
{
m_Makefile->ExpandVariablesInString(m_InputFile);
+ m_Makefile->AddCMakeDependFile(m_InputFile.c_str());
m_Makefile->ExpandVariablesInString(m_OuputFile);
cmSystemTools::ConvertToUnixSlashes(m_OuputFile);
std::string::size_type pos = m_OuputFile.rfind('/');
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 8c0403dbfa..532fadde86 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -493,6 +493,10 @@ public:
const std::vector<std::string>& GetListFiles() const
{ return m_ListFiles; }
+ ///! When the file changes cmake will be re-run from the build system.
+ void AddCMakeDependFile(const char* file)
+ { m_ListFiles.push_back(file);}
+
/**
* Dump documentation to a file. If 0 is returned, the
* operation failed.
diff --git a/Source/cmaketest.cxx b/Source/cmaketest.cxx
index 8756601b71..571e2f79c1 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