Spec-Zone.ru › CMake 3.29

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/v3.29/prop_tgt/Swift_COMPILATION_MODE.html

Spec-Zone.ru

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