summaryrefslogtreecommitdiffstats
path: root/Tests/Preprocess/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/Preprocess/CMakeLists.txt')
-rw-r--r--Tests/Preprocess/CMakeLists.txt63
1 files changed, 34 insertions, 29 deletions
diff --git a/Tests/Preprocess/CMakeLists.txt b/Tests/Preprocess/CMakeLists.txt
index fa9a109..bb33907 100644
--- a/Tests/Preprocess/CMakeLists.txt
+++ b/Tests/Preprocess/CMakeLists.txt
@@ -65,14 +65,20 @@ if(NOT BORLAND AND NOT PP_VS70)
set(SEMICOLON "\;")
endif(NOT BORLAND AND NOT PP_VS70)
-if(NOT PP_BORLAND AND NOT PP_WATCOM)
- # Borland, WMake: multiple spaces
- # The make tool seems to remove extra whitespace from inside
- # quoted strings when passing to the compiler. It does not have
- # trouble passing to other tools, and the compiler may be directly
- # invoked from the command line.
- set(STRING_EXTRA "${STRING_EXTRA} ")
-endif(NOT PP_BORLAND AND NOT PP_WATCOM)
+if(NOT PP_VS6)
+ # VS 6 IDE: spaces
+ # The project parser unconditionally separates arguments at spaces.
+ set(STRING_EXTRA "${STRING_EXTRA} ")
+
+ if(NOT PP_BORLAND AND NOT PP_WATCOM)
+ # Borland, WMake: multiple spaces
+ # The make tool seems to remove extra whitespace from inside
+ # quoted strings when passing to the compiler. It does not have
+ # trouble passing to other tools, and the compiler may be directly
+ # invoked from the command line.
+ set(STRING_EXTRA "${STRING_EXTRA} ")
+ endif(NOT PP_BORLAND AND NOT PP_WATCOM)
+endif(NOT PP_VS6)
if(NOT PP_VS)
# VS: ,
@@ -152,7 +158,7 @@ endif(PP_NMAKE OR PP_UMAKE)
# support it and it is not an operator it is not worthwhile.
# Compose the final test string.
-set(STRING_VALUE "hello `~!@$*)(_+-=}{][:'.?/ ${STRING_EXTRA}world")
+set(STRING_VALUE "hello`~!@$*)(_+-=}{][:'.?/${STRING_EXTRA}world")
#-----------------------------------------------------------------------------
# Function-style macro command-line support:
@@ -194,11 +200,7 @@ endif(PP_VS6)
add_definitions(-DOLD_DEF -DOLD_EXPR=2)
# Make sure old-style definitions are converted to directory property.
-if(PREPROCESS_VS6)
- set(OLD_DEFS_EXPECTED "OLD_DEF")
-else(PREPROCESS_VS6)
- set(OLD_DEFS_EXPECTED "OLD_DEF;OLD_EXPR=2")
-endif(PREPROCESS_VS6)
+set(OLD_DEFS_EXPECTED "OLD_DEF;OLD_EXPR=2")
get_property(OLD_DEFS DIRECTORY PROPERTY COMPILE_DEFINITIONS)
if(NOT "${OLD_DEFS}" STREQUAL "${OLD_DEFS_EXPECTED}")
message(SEND_ERROR "add_definitions not converted to directory property!")
@@ -225,23 +227,26 @@ foreach(c "" "_DEBUG" "_RELEASE")
)
endforeach(c)
-# Add definitions with values. VS6 does not support this.
+# Add definitions with values.
if(NOT PREPROCESS_VS6)
- set_property(
- TARGET Preprocess
- APPEND PROPERTY COMPILE_DEFINITIONS
- "TARGET_STRING=\"${STRING_VALUE}${SEMICOLON}\""
- "TARGET_EXPR=${EXPR}"
- "TARGET_PATH=\"${TARGET_PATH}\""
- )
- set_property(
- SOURCE preprocess.c preprocess${VS6}.cxx
- APPEND PROPERTY COMPILE_DEFINITIONS
- "FILE_STRING=\"${STRING_VALUE}${SEMICOLON}\""
- "FILE_EXPR=${EXPR}"
- "FILE_PATH=\"${FILE_PATH}\""
- )
+ # The path might have spaces, which VS6 does not support.
+ set(DEF_TARGET_PATH "TARGET_PATH=\"${TARGET_PATH}\"")
+ set(DEF_FILE_PATH "FILE_PATH=\"${FILE_PATH}\"")
endif(NOT PREPROCESS_VS6)
+set_property(
+ TARGET Preprocess
+ APPEND PROPERTY COMPILE_DEFINITIONS
+ "TARGET_STRING=\"${STRING_VALUE}${SEMICOLON}\""
+ "TARGET_EXPR=${EXPR}"
+ ${DEF_TARGET_PATH}
+ )
+set_property(
+ SOURCE preprocess.c preprocess${VS6}.cxx
+ APPEND PROPERTY COMPILE_DEFINITIONS
+ "FILE_STRING=\"${STRING_VALUE}${SEMICOLON}\""
+ "FILE_EXPR=${EXPR}"
+ ${DEF_FILE_PATH}
+ )
# Helper target for running test manually in build tree.
add_custom_target(drive COMMAND Preprocess)