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