Spec-Zone.ru › CMake 3.31

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

Spec-Zone.ru

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