mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-14 21:41:06 -05:00
Merge branch 'nmake-rsp-encoding' into release-3.21
Merge-request: !6905
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
#include <cmext/algorithm>
|
||||
#include <cmext/string_view>
|
||||
|
||||
#include "cm_codecvt.hxx"
|
||||
|
||||
#include "cmComputeLinkInformation.h"
|
||||
#include "cmCustomCommand.h"
|
||||
#include "cmCustomCommandGenerator.h"
|
||||
@@ -2046,11 +2048,22 @@ std::string cmMakefileTargetGenerator::CreateResponseFile(
|
||||
const char* name, std::string const& options,
|
||||
std::vector<std::string>& makefile_depends)
|
||||
{
|
||||
// FIXME: Find a better way to determine the response file encoding,
|
||||
// perhaps using tool-specific platform information variables.
|
||||
// For now, use the makefile encoding as a heuristic.
|
||||
codecvt::Encoding responseEncoding =
|
||||
this->GlobalGenerator->GetMakefileEncoding();
|
||||
// Non-MSVC tooling may not understand a BOM.
|
||||
if (responseEncoding == codecvt::UTF8_WITH_BOM &&
|
||||
!this->Makefile->IsOn("MSVC")) {
|
||||
responseEncoding = codecvt::UTF8;
|
||||
}
|
||||
|
||||
// Create the response file.
|
||||
std::string responseFileNameFull =
|
||||
cmStrCat(this->TargetBuildDirectoryFull, '/', name);
|
||||
cmGeneratedFileStream responseStream(
|
||||
responseFileNameFull, false, this->GlobalGenerator->GetMakefileEncoding());
|
||||
cmGeneratedFileStream responseStream(responseFileNameFull, false,
|
||||
responseEncoding);
|
||||
responseStream.SetCopyIfDifferent(true);
|
||||
responseStream << options << "\n";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user