summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests/SeparateArgumentsTest.cmake.in
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-14 14:15:47 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-14 14:15:47 (GMT)
commitb23b1800a586b0afb316f92d9bde82896c804ef5 (patch)
treef58cf1b529d826c3801939b6c9cb762e66950039 /Tests/CMakeTests/SeparateArgumentsTest.cmake.in
parent7a907f87f8a7ec08f8d402dd2fafd2a189e81bbc (diff)
downloadCMake-b23b1800a586b0afb316f92d9bde82896c804ef5.zip
CMake-b23b1800a586b0afb316f92d9bde82896c804ef5.tar.gz
CMake-b23b1800a586b0afb316f92d9bde82896c804ef5.tar.bz2
ENH: Teach separate_arguments() to parse commands
This adds UNIX_COMMAND and WINDOWS_COMMAND modes to the command. These modes parse unix- and windows-style command lines.
Diffstat (limited to 'Tests/CMakeTests/SeparateArgumentsTest.cmake.in')
-rw-r--r--Tests/CMakeTests/SeparateArgumentsTest.cmake.in25
1 files changed, 25 insertions, 0 deletions
diff --git a/Tests/CMakeTests/SeparateArgumentsTest.cmake.in b/Tests/CMakeTests/SeparateArgumentsTest.cmake.in
new file mode 100644
index 0000000..48964b8
--- /dev/null
+++ b/Tests/CMakeTests/SeparateArgumentsTest.cmake.in
@@ -0,0 +1,25 @@
+set(old_out "a b c")
+separate_arguments(old_out)
+set(old_exp "a;b;;c")
+
+set(unix_cmd "a \"b c\" 'd e' \";\" \\ \\'\\\" '\\'' \"\\\"\"")
+set(unix_exp "a;b c;d e;\;; '\";';\"")
+separate_arguments(unix_out UNIX_COMMAND "${unix_cmd}")
+
+set(windows_cmd "a \"b c\" 'd e' \";\" \\ \"c:\\windows\\path\\\\\" \\\"")
+set(windows_exp "a;b c;'d;e';\;;\\;c:\\windows\\path\\;\"")
+separate_arguments(windows_out WINDOWS_COMMAND "${windows_cmd}")
+
+foreach(mode old unix windows)
+ if(NOT "${${mode}_out}" STREQUAL "${${mode}_exp}")
+ message(FATAL_ERROR "separate_arguments ${mode}-style failed. "
+ "Expected\n [${${mode}_exp}]\nbut got\n [${${mode}_out}]\n")
+ endif()
+endforeach()
+
+set(nothing)
+separate_arguments(nothing)
+if(DEFINED nothing)
+ message(FATAL_ERROR "separate_arguments null-case failed: "
+ "nothing=[${nothing}]")
+endif()