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