BUG: Pay attention to ForceUnixPaths setting in cmSystemTools for ConvertToQuotedOutputPath and for dependency scanning.

This commit is contained in:
Brad King 2005-03-02 09:34:16 -05:00
parent ba6f07b10c
commit e015d822ab
1 changed files with 36 additions and 14 deletions

View File

@ -274,6 +274,15 @@ void cmLocalUnixMakefileGenerator2::GenerateDirectoryInformationFile()
// Write the do not edit header.
this->WriteDisclaimer(infoFileStream);
// Tell the dependency scanner to use unix paths if necessary.
if(cmSystemTools::GetForceUnixPaths())
{
infoFileStream
<< "# Force unix paths in dependencies.\n"
<< "SET(CMAKE_FORCE_UNIX_PATHS 1)\n"
<< "\n";
}
// Store the include search path for this directory.
infoFileStream
<< "# The C and CXX include file search paths:\n";
@ -2343,16 +2352,21 @@ cmLocalUnixMakefileGenerator2::ConvertToQuotedOutputPath(const char* p)
return "\"\"";
}
// Fix root component slash direction for windows.
// Choose a slash direction and fix root component.
const char* slash = "/";
#if defined(_WIN32) && !defined(__CYGWIN__)
for(std::string::iterator i = components[0].begin();
i != components[0].end(); ++i)
{
if(*i == '/')
{
*i = '\\';
}
}
if(!cmSystemTools::GetForceUnixPaths())
{
slash = "\\";
for(std::string::iterator i = components[0].begin();
i != components[0].end(); ++i)
{
if(*i == '/')
{
*i = '\\';
}
}
}
#endif
// Begin the quoted result with the root component.
@ -2369,11 +2383,7 @@ cmLocalUnixMakefileGenerator2::ConvertToQuotedOutputPath(const char* p)
{
if(!first)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
result += "\\";
#else
result += "/";
#endif
result += slash;
}
result += components[i];
first = false;
@ -3177,6 +3187,18 @@ cmLocalUnixMakefileGenerator2
haveDirectoryInfo = true;
}
// Test whether we need to force Unix paths.
if(haveDirectoryInfo)
{
if(const char* force = mf->GetDefinition("CMAKE_FORCE_UNIX_PATHS"))
{
if(!cmSystemTools::IsOff(force))
{
cmSystemTools::SetForceUnixPaths(true);
}
}
}
// Get the set of include directories.
std::vector<std::string> includes;
if(haveDirectoryInfo)