mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Use forward slashes for objects in response files
Response files are parsed by tools, not by shells. We teach cmLocalGenerator::Convert() a new "RESPONSE" output format and use it for objects listed in response files. It does not do special slash or MSYS root translation like the "SHELL" format does. This is necessary for GNU tools on Windows to understand response file content. See issue #10401.
This commit is contained in:
@@ -2247,6 +2247,10 @@ std::string cmLocalGenerator::ConvertToOutputFormat(const char* source,
|
||||
}
|
||||
result = this->EscapeForShell(result.c_str(), true, false);
|
||||
}
|
||||
else if(output == RESPONSE)
|
||||
{
|
||||
result = this->EscapeForShell(result.c_str(), false, false);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
* path setting
|
||||
*/
|
||||
enum RelativeRoot { NONE, FULL, HOME, START, HOME_OUTPUT, START_OUTPUT };
|
||||
enum OutputFormat { UNCHANGED, MAKEFILE, SHELL };
|
||||
enum OutputFormat { UNCHANGED, MAKEFILE, SHELL, RESPONSE };
|
||||
std::string ConvertToOutputFormat(const char* source, OutputFormat output);
|
||||
std::string Convert(const char* remote, RelativeRoot local,
|
||||
OutputFormat output = UNCHANGED,
|
||||
|
||||
@@ -1329,7 +1329,7 @@ public:
|
||||
this->NextObject =
|
||||
this->LocalGenerator->Convert(obj.c_str(),
|
||||
cmLocalGenerator::START_OUTPUT,
|
||||
cmLocalGenerator::SHELL);
|
||||
cmLocalGenerator::RESPONSE);
|
||||
|
||||
// Roll over to next string if the limit will be exceeded.
|
||||
if(this->LengthLimit != std::string::npos &&
|
||||
|
||||
Reference in New Issue
Block a user