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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/variable/CMAKE_Swift_COMPILATION_MODE.html