Swift_COMPILATION_MODE
Добавлено в версии 3.29.
Задаёт способ компиляции цели на Swift.
Допустимые значения:
-
incremental -
Компилирует каждый исходный файл Swift в модуле отдельно, обеспечивая более высокий уровень параллелизма при сборке. Компилятор сохраняет дополнительную информацию в каталоге сборки, что ускоряет повторную сборку при небольших изменениях исходного кода. Этот вариант лучше всего подходит для работы над изменениями в проекте.
-
wholemodule -
При оптимизации всего модуля компиляция выполняется медленнее всего, но библиотека получается наиболее оптимизированной. Весь контекст загружается в один экземпляр компилятора, поэтому параллельная обработка исходных файлов модуля невозможна.
-
singlefile -
Компилирует каждый исходный файл в модуле Swift отдельно, обеспечивая более высокий уровень параллелизма. В отличие от режима сборки
incremental, во время сборки компилятор не сохраняет дополнительную информацию, поэтому после небольших изменений исходного файла повторная сборка не будет выполняться быстрее. Этот вариант следует использовать редко, отдавая предпочтение сборкамincremental, за исключением случаев, когда необходимо обойти ошибку компилятора.
Используйте generator expressions для задания значений для разных конфигураций. Например, следующий код:
add_library(foo foo.swift) set_property(TARGET foo PROPERTY Swift_COMPILATION_MODE "$<IF:$<CONFIG:Release>,wholemodule,incremental>")
задаёт режим компиляции Swift wholemodule для конфигурации release, а для остальных конфигураций устанавливает для свойства режим incremental.
Если переменная CMAKE_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/prop_tgt/Swift_COMPILATION_MODE.html