separate_arguments — CMake 3.17.2 Documentation

# separate_arguments

Parse command-line arguments into a semicolon-separated list.

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

    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.