separate_arguments
Разбор аргументов командной строки в список, разделённый точкой с запятой.
separate_arguments(<variable> <mode> <args>)
Разбирает строку, разделённую пробелами <args> в список элементов и сохраняет этот список в стандартном формате, разделённом точкой с запятой, в <variable>.
Эта функция предназначена для разбора аргументов командной строки. В аргументе <args> должна быть передана вся командная строка как одна строка.
Точные правила разбора зависят от операционной системы. Они определяются аргументом <mode> , который должен быть одним из следующих ключевых слов:
-
UNIX_COMMAND -
Аргументы разделяются нецитированными пробелами. Оба одиночные и двойные кавычки учитываются. Обратный слэш экранирует следующий буквенный символ (
\"- это"); нет специальных экранирований (\n- это простоn). -
WINDOWS_COMMAND -
Командная строка Windows разбирается с использованием того же синтаксиса, что и библиотека runtime использует для построения argv при запуске. Аргументы разделяются пробелами, которые не находятся в двойных кавычках. Обратные слэши являются буквальными, если не предшествуют двойным кавычкам. Подробнее см. статью MSDN Parsing C Command-Line Arguments.
-
NATIVE_COMMAND -
Действует, как в режиме
WINDOWS_COMMAND, если хост-система — Windows. В противном случае, действует, как в режимеUNIX_COMMAND.
separate_arguments(<var>)
Преобразуйте значение <var> в список, разделённый точкой с запятой. Все пробелы заменяются на ‘;’. Это помогает при генерации командных строк.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.16/command/separate_arguments.html