summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tests/Preprocess/CMakeLists.txt12
1 files changed, 9 insertions, 3 deletions
diff --git a/Tests/Preprocess/CMakeLists.txt b/Tests/Preprocess/CMakeLists.txt
index f154b6f..b4ec17c 100644
--- a/Tests/Preprocess/CMakeLists.txt
+++ b/Tests/Preprocess/CMakeLists.txt
@@ -117,8 +117,9 @@ if(NOT PP_BORLAND AND NOT PP_MINGW AND NOT PP_NMAKE)
endif(NOT PP_BORLAND AND NOT PP_MINGW AND NOT PP_NMAKE)
set(EXPR_OP1 "/")
-if(NOT MSVC OR PP_NMAKE)
- # MSVC cl: %
+if((NOT MSVC OR PP_NMAKE) AND
+ NOT "${CMAKE_C_COMPILER_ID}" MATCHES "^(Intel)$")
+ # MSVC cl, Intel icl: %
# When the cl compiler is invoked from the command line then % must
# be written %% (to distinguish from %ENV% syntax). However cl does
# not seem to accept the syntax when it is invoked from inside a
@@ -128,9 +129,14 @@ if(NOT MSVC OR PP_NMAKE)
# line. Currently only NMake supports running cl with a response
# file. Supporting other make tools would require CMake to generate
# response files explicitly for each object file.
+ #
+ # When the icl compiler is invoked from the command line then % must
+ # be written just '%'. However nmake requires '%%' except when using
+ # response files. Currently we have no way to affect escaping based
+ # on whether flags go in a response file, so we just have to skip it.
set(STRING_EXTRA "${STRING_EXTRA}%")
set(EXPR_OP1 "%")
-endif(NOT MSVC OR PP_NMAKE)
+endif()
# General: \"
# Make tools do not reliably accept \\\" syntax: