BUG: Need to include relative path top information in directory information so that relative path conversion during dependency generation works with the same rules as project generation.

This commit is contained in:
Brad King 2007-03-16 16:48:27 -04:00
parent 7fb8ac8904
commit 144c605525
1 changed files with 25 additions and 2 deletions

View File

@ -411,6 +411,15 @@ void cmLocalUnixMakefileGenerator3::WriteDirectoryInformationFile()
// Write the do not edit header.
this->WriteDisclaimer(infoFileStream);
// Setup relative path conversion tops.
infoFileStream
<< "# Relative path conversion top directories.\n"
<< "SET(CMAKE_RELATIVE_PATH_TOP_SOURCE \"" << this->RelativePathTopSource
<< "\")\n"
<< "SET(CMAKE_RELATIVE_PATH_TOP_BINARY \"" << this->RelativePathTopBinary
<< "\")\n"
<< "\n";
// Tell the dependency scanner to use unix paths if necessary.
if(cmSystemTools::GetForceUnixPaths())
{
@ -1155,10 +1164,11 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(const char* tgtInfo)
{
cmSystemTools::Error("Target DependInfo.cmake file not found");
}
// Test whether we need to force Unix paths.
// Lookup useful directory information.
if(haveDirectoryInfo)
{
// Test whether we need to force Unix paths.
if(const char* force = mf->GetDefinition("CMAKE_FORCE_UNIX_PATHS"))
{
if(!cmSystemTools::IsOff(force))
@ -1166,6 +1176,19 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(const char* tgtInfo)
cmSystemTools::SetForceUnixPaths(true);
}
}
// Setup relative path top directories.
this->RelativePathsConfigured = true;
if(const char* relativePathTopSource =
mf->GetDefinition("CMAKE_RELATIVE_PATH_TOP_SOURCE"))
{
this->RelativePathTopSource = relativePathTopSource;
}
if(const char* relativePathTopBinary =
mf->GetDefinition("CMAKE_RELATIVE_PATH_TOP_BINARY"))
{
this->RelativePathTopBinary = relativePathTopBinary;
}
}
else
{