Spec-Zone.ru › CMake

CMAKE_Swift_COMPILATION_MODE

Добавлено в версии 3.29.

Задает способ компиляции цели на Swift. Эта переменная используется для инициализации свойства Swift_COMPILATION_MODE для создаваемых целей.

Допустимые значения:

incremental

Компилирует каждый исходный файл Swift в модуле отдельно, обеспечивая более высокий уровень параллелизма при сборке. Компилятор записывает дополнительную информацию в каталог сборки, ускоряя повторную сборку при небольших изменениях исходного кода. Этот вариант лучше всего подходит для внесения изменений в проект.

wholemodule

Оптимизация всего модуля требует больше всего времени на компиляцию, но обеспечивает наиболее оптимизированную библиотеку. Весь контекст загружается в один экземпляр компилятора, поэтому параллельная обработка исходных файлов модуля не выполняется.

singlefile

Компилирует каждый исходный файл модуля Swift отдельно, обеспечивая более высокий уровень параллелизма. В отличие от режима сборки incremental, во время сборки компилятор не записывает дополнительную информацию, поэтому повторная сборка после небольших изменений исходного файла не будет выполняться быстрее. Этот вариант следует использовать редко, отдавая предпочтение сборкам incremental, за исключением случаев, когда необходимо обойти ошибку компилятора.

Используйте generator expressions для задания значения отдельно для каждой конфигурации. Например, следующий код:

set(CMAKE_Swift_COMPILATION_MODE
  "$<IF:$<CONFIG:Release>,wholemodule,incremental>")

задает режим компиляции Swift по умолчанию: режим wholemodule для конфигурации release и режим incremental для остальных конфигураций.

Если эта переменная не задана, свойство цели Swift_COMPILATION_MODE не будет задано автоматически. Если это свойство не задано, CMake использует значение по умолчанию incremental для сборки исходных файлов Swift.

Примечание

Это свойство действует только в том случае, если политика CMP0157 установлена в значение NEW до первого вызова команды project() или enable_language(), включающей язык Swift.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_Swift_COMPILATION_MODE.html

Spec-Zone.ru

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