diff options
author | Brad King <brad.king@kitware.com> | 2021-04-28 13:14:31 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-05-05 10:56:49 -0400 |
commit | 186c9bff5342c1e8e73fce9cf361b6de5dda3f28 (patch) | |
tree | d0872a89c61feff3b726b9d1d45bebcbbd2989a3 | |
parent | 8a4f536be664c0ef6d79c2bf7fd547355ae59c81 (diff) | |
download | cmake-186c9bff5342c1e8e73fce9cf361b6de5dda3f28.tar.gz |
NMake: Check nmake version for support of UTF-8
NMake version 9 and above support UTF-8 encoded makefiles with a BOM.
-rw-r--r-- | Source/cmGlobalNMakeMakefileGenerator.cxx | 7 | ||||
-rw-r--r-- | Source/cmGlobalNMakeMakefileGenerator.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmGlobalNMakeMakefileGenerator.cxx b/Source/cmGlobalNMakeMakefileGenerator.cxx index cbcd4b33be..313f39b5e8 100644 --- a/Source/cmGlobalNMakeMakefileGenerator.cxx +++ b/Source/cmGlobalNMakeMakefileGenerator.cxx @@ -63,11 +63,18 @@ bool cmGlobalNMakeMakefileGenerator::FindMakeProgram(cmMakefile* mf) "Program Maintenance Utility Version ([1-9][0-9.]+)"); if (regex.find(err)) { this->NMakeVersion = regex.match(1); + this->CheckNMakeFeatures(); } } return true; } +void cmGlobalNMakeMakefileGenerator::CheckNMakeFeatures() +{ + this->NMakeSupportsUTF8 = !cmSystemTools::VersionCompare( + cmSystemTools::OP_LESS, this->NMakeVersion.c_str(), "9"); +} + void cmGlobalNMakeMakefileGenerator::GetDocumentation( cmDocumentationEntry& entry) { diff --git a/Source/cmGlobalNMakeMakefileGenerator.h b/Source/cmGlobalNMakeMakefileGenerator.h index c23eef8141..ed52378347 100644 --- a/Source/cmGlobalNMakeMakefileGenerator.h +++ b/Source/cmGlobalNMakeMakefileGenerator.h @@ -55,8 +55,10 @@ protected: void PrintBuildCommandAdvice(std::ostream& os, int jobs) const override; private: + bool NMakeSupportsUTF8 = false; std::string NMakeVersion; bool FindMakeProgram(cmMakefile* mf) override; + void CheckNMakeFeatures(); void PrintCompilerAdvice(std::ostream& os, std::string const& lang, const char* envVar) const override; |