summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmConfigureFileCommand.cxx10
-rw-r--r--Source/cmConfigureFileCommand.h2
-rw-r--r--Source/cmMakefile.cxx5
3 files changed, 13 insertions, 4 deletions
diff --git a/Source/cmConfigureFileCommand.cxx b/Source/cmConfigureFileCommand.cxx
index bd3b4d3..fa7d52d 100644
--- a/Source/cmConfigureFileCommand.cxx
+++ b/Source/cmConfigureFileCommand.cxx
@@ -56,7 +56,11 @@ bool cmConfigureFileCommand::InitialPass(std::vector<std::string> const& args)
// first pass (now).
if(m_Immediate)
{
- this->ConfigureFile();
+ if ( !this->ConfigureFile() )
+ {
+ this->SetError("Problem configuring file");
+ return false;
+ }
}
return true;
@@ -70,9 +74,9 @@ void cmConfigureFileCommand::FinalPass()
}
}
-void cmConfigureFileCommand::ConfigureFile()
+int cmConfigureFileCommand::ConfigureFile()
{
- m_Makefile->ConfigureFile(m_InputFile.c_str(),
+ return m_Makefile->ConfigureFile(m_InputFile.c_str(),
m_OuputFile.c_str(),
m_CopyOnly,
m_AtOnly,
diff --git a/Source/cmConfigureFileCommand.h b/Source/cmConfigureFileCommand.h
index e9a01b3..2ae8040 100644
--- a/Source/cmConfigureFileCommand.h
+++ b/Source/cmConfigureFileCommand.h
@@ -76,7 +76,7 @@ public:
virtual void FinalPass();
private:
- void ConfigureFile();
+ int ConfigureFile();
std::string m_InputFile;
std::string m_OuputFile;
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index cc1721c..f0e187f 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2285,6 +2285,11 @@ void cmMakefile::ConfigureString(const std::string& input,
int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
bool copyonly, bool atOnly, bool escapeQuotes)
{
+ if ( !cmSystemTools::FileExists(infile) )
+ {
+ cmSystemTools::Error("File ", infile, " does not exist.");
+ return 0;
+ }
std::string soutfile = outfile;
std::string sinfile = infile;
this->AddCMakeDependFile(infile);