| 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. |