diff options
Diffstat (limited to 'share/cmake-3.18/Help/command/separate_arguments.rst')
-rw-r--r-- | share/cmake-3.18/Help/command/separate_arguments.rst | 46 |
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. |