From 144c60552566e21cd57b7be498be53b1c3a24ece Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 16 Mar 2007 16:48:27 -0400 Subject: 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. --- Source/cmLocalUnixMakefileGenerator3.cxx | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 5dc1384..008061a 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -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 { -- cgit v0.12