diff options
author | Brad King <brad.king@kitware.com> | 2022-01-26 12:23:29 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-01-26 12:40:36 (GMT) |
commit | cab631c2e242ff74a1bddd973b5aafe9b6f4ebd5 (patch) | |
tree | ab29f96858095630048e27befcc08e29062ce44a /Source/cmMakefileTargetGenerator.cxx | |
parent | 74f14997c6b74ef596ee7be2a622056ae7cfe062 (diff) | |
download | CMake-cab631c2e242ff74a1bddd973b5aafe9b6f4ebd5.zip CMake-cab631c2e242ff74a1bddd973b5aafe9b6f4ebd5.tar.gz CMake-cab631c2e242ff74a1bddd973b5aafe9b6f4ebd5.tar.bz2 |
NMake: Document response file encoding heuristic in a comment
Since commit f3f57cc4ed (NMake: Use UTF-8 with BOM if supported by
nmake, 2021-04-22, v3.21.0-rc1~217^2) the encoding of response files is
selected based on the makefile encoding. In principle these may be
orthogonal, but in practice it is a useful heuristic. Call out this
heuristic in a comment, and leave a FIXME to do something better.
Diffstat (limited to 'Source/cmMakefileTargetGenerator.cxx')
-rw-r--r-- | Source/cmMakefileTargetGenerator.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index a3e5553..add9c01 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -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,17 @@ 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(); + // 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"; |