Spec-Zone.ru › CMake 3.30

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

Spec-Zone.ru

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