mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
NMake: Use ANSI encoding for NMake Makefiles
Set ANSI encoding to cmGeneratedFileStream for use with NMake Makefile generator.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "cmSystemTools.h"
|
||||
#include "cmTarget.h"
|
||||
#include "cmTargetDepend.h"
|
||||
#include "cm_codecvt.hxx"
|
||||
|
||||
#include <iosfwd>
|
||||
#include <map>
|
||||
@@ -60,6 +61,12 @@ public:
|
||||
return this->GetName() == name;
|
||||
}
|
||||
|
||||
/** Get encoding used by generator for makefile files */
|
||||
virtual codecvt::Encoding GetMakefileEncoding() const
|
||||
{
|
||||
return codecvt::None;
|
||||
}
|
||||
|
||||
/** Tell the generator about the target system. */
|
||||
virtual bool SetSystemName(std::string const&, cmMakefile*) { return true; }
|
||||
|
||||
|
||||
@@ -26,6 +26,12 @@ public:
|
||||
}
|
||||
static std::string GetActualName() { return "NMake Makefiles"; }
|
||||
|
||||
/** Get encoding used by generator for makefile files */
|
||||
codecvt::Encoding GetMakefileEncoding() const CM_OVERRIDE
|
||||
{
|
||||
return codecvt::ANSI;
|
||||
}
|
||||
|
||||
/** Get the documentation entry for this generator. */
|
||||
static void GetDocumentation(cmDocumentationEntry& entry);
|
||||
|
||||
|
||||
@@ -201,7 +201,8 @@ void cmGlobalUnixMakefileGenerator3::WriteMainMakefile2()
|
||||
this->GetCMakeInstance()->GetHomeOutputDirectory();
|
||||
makefileName += cmake::GetCMakeFilesDirectory();
|
||||
makefileName += "/Makefile2";
|
||||
cmGeneratedFileStream makefileStream(makefileName.c_str());
|
||||
cmGeneratedFileStream makefileStream(makefileName.c_str(), false,
|
||||
this->GetMakefileEncoding());
|
||||
if (!makefileStream) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -230,7 +230,9 @@ void cmLocalUnixMakefileGenerator3::WriteLocalMakefile()
|
||||
// Open the rule file. This should be copy-if-different because the
|
||||
// rules may depend on this file itself.
|
||||
std::string ruleFileNameFull = this->ConvertToFullPath(ruleFileName);
|
||||
cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str());
|
||||
cmGeneratedFileStream ruleFileStream(
|
||||
ruleFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
if (!ruleFileStream) {
|
||||
return;
|
||||
}
|
||||
@@ -1415,7 +1417,9 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(
|
||||
// because the make tool may try to reload it needlessly otherwise.
|
||||
std::string ruleFileNameFull = dir;
|
||||
ruleFileNameFull += "/depend.make";
|
||||
cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str());
|
||||
cmGeneratedFileStream ruleFileStream(
|
||||
ruleFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
ruleFileStream.SetCopyIfDifferent(true);
|
||||
if (!ruleFileStream) {
|
||||
return false;
|
||||
@@ -1427,7 +1431,8 @@ bool cmLocalUnixMakefileGenerator3::ScanDependencies(
|
||||
std::string internalRuleFileNameFull = dir;
|
||||
internalRuleFileNameFull += "/depend.internal";
|
||||
cmGeneratedFileStream internalRuleFileStream(
|
||||
internalRuleFileNameFull.c_str());
|
||||
internalRuleFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
if (!internalRuleFileStream) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -110,7 +110,8 @@ void cmMakefileTargetGenerator::CreateRuleFile()
|
||||
// Open the rule file. This should be copy-if-different because the
|
||||
// rules may depend on this file itself.
|
||||
this->BuildFileStream =
|
||||
new cmGeneratedFileStream(this->BuildFileNameFull.c_str());
|
||||
new cmGeneratedFileStream(this->BuildFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
this->BuildFileStream->SetCopyIfDifferent(true);
|
||||
if (!this->BuildFileStream) {
|
||||
return;
|
||||
@@ -231,7 +232,9 @@ void cmMakefileTargetGenerator::WriteCommonCodeRules()
|
||||
// make sure the depend file exists
|
||||
if (!cmSystemTools::FileExists(dependFileNameFull.c_str())) {
|
||||
// Write an empty dependency file.
|
||||
cmGeneratedFileStream depFileStream(dependFileNameFull.c_str());
|
||||
cmGeneratedFileStream depFileStream(
|
||||
dependFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
depFileStream << "# Empty dependencies file for "
|
||||
<< this->GeneratorTarget->GetName() << ".\n"
|
||||
<< "# This may be replaced when dependencies are built."
|
||||
@@ -243,7 +246,8 @@ void cmMakefileTargetGenerator::WriteCommonCodeRules()
|
||||
this->FlagFileNameFull = this->TargetBuildDirectoryFull;
|
||||
this->FlagFileNameFull += "/flags.make";
|
||||
this->FlagFileStream =
|
||||
new cmGeneratedFileStream(this->FlagFileNameFull.c_str());
|
||||
new cmGeneratedFileStream(this->FlagFileNameFull.c_str(), false,
|
||||
this->GlobalGenerator->GetMakefileEncoding());
|
||||
this->FlagFileStream->SetCopyIfDifferent(true);
|
||||
if (!this->FlagFileStream) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user