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