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