VS 10: Escape ; as %3B in preprocessor definitions (#14073)
Use the suggestion from http://support.microsoft.com/kb/2262855 to escape semicolons in preprocessor definitions for VS >= 10. Update the COMPILE_DEFINITIONS documentation disclaimer list of known limitations accordingly. Update our "Preprocess" test to cover the case. Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
This commit is contained in:
parent
6bfa3d8668
commit
4e4688e469
|
@ -23,7 +23,7 @@
|
|||
"in a (configured) header file. Then report the limitation. " \
|
||||
"Known limitations include:\n" \
|
||||
" # - broken almost everywhere\n" \
|
||||
" ; - broken in VS IDE and Borland Makefiles\n" \
|
||||
" ; - broken in VS IDE 7.0 and Borland Makefiles\n" \
|
||||
" , - broken in VS IDE\n" \
|
||||
" % - broken in some cases in NMake\n" \
|
||||
" & | - broken in some cases on MinGW\n" \
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
inline std::string cmVisualStudio10GeneratorOptionsEscapeForXML(const char* s)
|
||||
{
|
||||
std::string ret = s;
|
||||
cmSystemTools::ReplaceString(ret, ";", "%3B");
|
||||
cmSystemTools::ReplaceString(ret, "&", "&");
|
||||
cmSystemTools::ReplaceString(ret, "<", "<");
|
||||
cmSystemTools::ReplaceString(ret, ">", ">");
|
||||
|
|
|
@ -55,7 +55,7 @@ endif()
|
|||
# must not have it escaped inside the configured header.
|
||||
set(STRING_EXTRA "")
|
||||
|
||||
if(NOT BORLAND AND NOT PP_VS70 AND NOT PP_VS100 AND NOT PP_VS110)
|
||||
if(NOT BORLAND AND NOT PP_VS70)
|
||||
# Borland, VS70 IDE: ;
|
||||
# The Borland compiler will simply not accept a non-escaped semicolon
|
||||
# on the command line. If it is escaped \; then the escape character
|
||||
|
@ -63,7 +63,6 @@ if(NOT BORLAND AND NOT PP_VS70 AND NOT PP_VS100 AND NOT PP_VS110)
|
|||
#
|
||||
# The VS 7.0 IDE separates definitions on semicolons and commas with
|
||||
# no regard for quotes. Fortunately VS 7.1 and above are okay.
|
||||
# VS 10 seems to also not like semicolons
|
||||
set(SEMICOLON "\;")
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in New Issue