Use full path file names to express dependencies.

This is especially important for the Visual Studio 10
generator and its quirky current working directory
behavior.

Also, emit more information about exactly what files are
out of date when cmakeCheckStampFile returns false.
This commit is contained in:
David Cole 2010-06-21 11:47:16 -04:00
parent 9082fc8a47
commit 616462ce45
2 changed files with 8 additions and 3 deletions

View File

@ -270,9 +270,11 @@ cmSourceFile* cmLocalVisualStudio7Generator::CreateVCProjBuildRule()
cmCustomCommandLines commandLines;
commandLines.push_back(commandLine);
const char* no_working_directory = 0;
this->Makefile->AddCustomCommandToOutput(stampName.c_str(), listFiles,
makefileIn.c_str(), commandLines,
comment.c_str(),
std::string fullpathStampName = this->Convert(stampName.c_str(), FULL,
UNCHANGED);
this->Makefile->AddCustomCommandToOutput(fullpathStampName.c_str(),
listFiles, makefileIn.c_str(),
commandLines, comment.c_str(),
no_working_directory, true);
if(cmSourceFile* file = this->Makefile->GetSource(makefileIn.c_str()))
{

View File

@ -3906,6 +3906,9 @@ static bool cmakeCheckStampFile(const char* stampName)
// build system is really out of date.
std::cout << "CMake is re-running because " << stampName
<< " is out-of-date.\n";
std::cout << " the file '" << dep << "'\n";
std::cout << " is newer than '" << stampDepends << "'\n";
std::cout << " result='" << result << "'\n";
return false;
}
}