summaryrefslogtreecommitdiff
path: root/share/cmake-3.18/Help/command/separate_arguments.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.18/Help/command/separate_arguments.rst')
-rw-r--r--share/cmake-3.18/Help/command/separate_arguments.rst46
1 files changed, 46 insertions, 0 deletions
diff --git a/share/cmake-3.18/Help/command/separate_arguments.rst b/share/cmake-3.18/Help/command/separate_arguments.rst
new file mode 100644
index 0000000..ab3d5c1
--- /dev/null
+++ b/share/cmake-3.18/Help/command/separate_arguments.rst
@@ -0,0 +1,46 @@
+separate_arguments
+------------------
+
+Parse command-line arguments into a semicolon-separated list.
+
+.. code-block:: cmake
+
+ separate_arguments(<variable> <mode> <args>)
+
+Parses a space-separated string ``<args>`` into a list of items,
+and stores this list in semicolon-separated standard form in ``<variable>``.
+
+This function is intended for parsing command-line arguments.
+The entire command line must be passed as one string in the
+argument ``<args>``.
+
+The exact parsing rules depend on the operating system.
+They are specified by the ``<mode>`` argument which must
+be one of the following keywords:
+
+``UNIX_COMMAND``
+ Arguments are separated by unquoted whitespace.
+ Both single-quote and double-quote pairs are respected.
+ A backslash escapes the next literal character (``\"`` is ``"``);
+ there are no special escapes (``\n`` is just ``n``).
+
+``WINDOWS_COMMAND``
+ A Windows command-line is parsed using the same
+ syntax the runtime library uses to construct argv at startup. It
+ separates arguments by whitespace that is not double-quoted.
+ Backslashes are literal unless they precede double-quotes. See the
+ MSDN article `Parsing C Command-Line Arguments`_ for details.
+
+``NATIVE_COMMAND``
+ Proceeds as in ``WINDOWS_COMMAND`` mode if the host system is Windows.
+ Otherwise proceeds as in ``UNIX_COMMAND`` mode.
+
+.. _`Parsing C Command-Line Arguments`: https://msdn.microsoft.com/library/a1y7w461.aspx
+
+.. code-block:: cmake
+
+ separate_arguments(<var>)
+
+Convert the value of ``<var>`` to a semi-colon separated list. All
+spaces are replaced with ';'. This helps with generating command
+lines.