File: separate_arguments.rst

package info (click to toggle)
cmake 3.13.4-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 77,660 kB
  • sloc: ansic: 271,692; cpp: 195,350; yacc: 3,203; sh: 3,078; xml: 2,586; python: 1,182; lex: 1,138; asm: 370; lisp: 275; perl: 226; java: 197; f90: 175; objc: 157; cs: 124; fortran: 113; makefile: 81; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (36 lines) | stat: -rw-r--r-- 1,342 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
separate_arguments
------------------

Parse space-separated arguments into a semicolon-separated list.

::

  separate_arguments(<var> <NATIVE|UNIX|WINDOWS>_COMMAND "<args>")

Parses a UNIX- or Windows-style command-line string "<args>" and
stores a semicolon-separated list of the arguments in ``<var>``.  The
entire command line must be given in one "<args>" argument.

The ``UNIX_COMMAND`` mode separates arguments by unquoted whitespace.  It
recognizes both single-quote and double-quote pairs.  A backslash
escapes the next literal character (``\"`` is ``"``); there are no special
escapes (``\n`` is just ``n``).

The ``WINDOWS_COMMAND`` mode parses a Windows command-line 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.

The ``NATIVE_COMMAND`` mode parses a Windows command-line if the host
system is Windows, and a UNIX command-line otherwise.

.. _`Parsing C Command-Line Arguments`: https://msdn.microsoft.com/library/a1y7w461.aspx

::

  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.