cmDepends: disable long line dependencies for nmake

This is a follow-up to commit b696f78073 (cmDepends: merge dependers of
depend makefile, 2020-12-18).  NMake of visual studio has many versions
that not support long line dependencies of make rule.

Signed-off-by: Wangkai <wangkai86@huawei.com>
Fixes: #21681
This commit is contained in:
Kai Wang
2021-01-11 06:55:41 +00:00
committed by Brad King
parent aaebbd200b
commit 4d509437cb
2 changed files with 3 additions and 7 deletions

View File

@@ -21,6 +21,8 @@ cmGlobalNMakeMakefileGenerator::cmGlobalNMakeMakefileGenerator(cmake* cm)
this->PassMakeflags = true;
this->UnixCD = false;
this->MakeSilentFlag = "/nologo";
// nmake breaks on '!' in long-line dependencies
this->ToolSupportsLongLineDependencies = false;
}
void cmGlobalNMakeMakefileGenerator::EnableLanguage(

View File

@@ -67,13 +67,7 @@ else()
endif()
# Test escaping of special characters in include directory paths.
set(special_chars "~@&{}()'")
if(NOT (CMAKE_GENERATOR STREQUAL "NMake Makefiles" AND
"x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC" AND
"${CMAKE_C_COMPILER_VERSION}" VERSION_LESS 13.0))
# NMake from VS 6 mistakes '!' in a path after a line continuation for a directive.
string(APPEND special_chars "!")
endif()
set(special_chars "~@&{}()!'")
if(NOT CMAKE_GENERATOR MATCHES "(Unix|MinGW|MSYS) Makefiles")
# when compiler is used for dependencies, special characters for make are not escaped
string(APPEND special_chars "%")