Spec-Zone.ru › CMake 3.30

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.30/variable/CMAKE_Swift_COMPILATION_MODE.html

Spec-Zone.ru

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