Spec-Zone.ru › CMake

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

Spec-Zone.ru

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