Spec-Zone.ru › CMake 3.20

separate_arguments

Разбор аргументов командной строки в список, разделённый точкой с запятой.

separate_arguments(<variable> <mode> [PROGRAM [SEPARATE_ARGS]] <args>)

Разбирает строку, разделённую пробелами <args> в список элементов и сохраняет этот список в стандартном формате, разделённом точкой с запятой, в <variable>.

Эта функция предназначена для разбора аргументов командной строки. Вся командная строка должна быть передана как одна строка в аргументе <args>.

Точные правила разбора зависят от операционной системы. Они определяются аргументом <mode>, который должен быть одним из следующих ключевых слов:

UNIX_COMMAND

Аргументы разделяются необрамлёнными пробелами. Оба одинарных и двойные кавычки обрабатываются корректно. Обратный слэш экранирует следующий символ (\" это "); специальные экранирования отсутствуют (\n это просто n).

WINDOWS_COMMAND

Командная строка Windows разбирается с использованием того же синтаксиса, что и библиотека выполнения при запуске для построения argv. Она разделяет аргументы пробелами, которые не заключены в двойные кавычки. Обратные слэши являются буквальными, если они не предшествуют двойным кавычкам. Подробную информацию см. в статье MSDN Parsing C Command-Line Arguments.

NATIVE_COMMAND

Новое в версии 3.9.

Действует так же, как в режиме WINDOWS_COMMAND если хост-система Windows. В противном случае, действует как в режиме UNIX_COMMAND.

PROGRAM

Новое в версии 3.19.

Первый элемент в <args> предполагается быть исполняемым файлом и будет искаться в пути поиска системы или оставлен как полный путь. Если не найден, <variable> будет пустым. В противном случае, <variable> является списком из 2 элементов:

  1. Абсолютный путь к программе
  2. Все аргументы командной строки, присутствующие в <args> в виде строки

Например:

separate_arguments (out UNIX_COMMAND PROGRAM "cc -c main.c")
  • Первый элемент списка: /path/to/cc
  • Второй элемент списка: " -c main.c"
SEPARATE_ARGS

Когда этот подвариант опции PROGRAM указан, аргументы командной строки также будут разделены и сохранены в <variable>.

Например:

separate_arguments (out UNIX_COMMAND PROGRAM SEPARATE_ARGS "cc -c main.c")

Содержимое out будет: /path/to/cc;-c;main.c

separate_arguments(<var>)

Преобразует значение <var> в список, разделённый точкой с запятой. Все пробелы заменяются на «;». Это помогает в генерации командных строк.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/command/separate_arguments.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API