Spec-Zone.ru › CMake 3.21

UNITY_BUILD_MODE

Новое в версии 3.18.

CMake предоставляет различные алгоритмы для выбора источников, которые будут сгруппированы в блок. Выбор определяется этим свойством, которое имеет следующие допустимые значения:

BATCH

В этом режиме CMake определяет, какие файлы будут сгруппированы вместе. Свойство UNITY_BUILD_BATCH_SIZE контролирует верхний предел количества источников, которые могут быть объединены в один файл unity.

Пример использования:

add_library(example_library
            source1.cxx
            source2.cxx
            source3.cxx
            source4.cxx)

set_target_properties(example_library PROPERTIES
                      UNITY_BUILD_MODE BATCH
                      UNITY_BUILD_BATCH_SIZE 2
                      )
GROUP

В этом режиме каждый целевой объект явно указывает, как сгруппировать исходные файлы. Каждый исходный файл, имеющий одинаковое значение свойства UNITY_GROUP, будет сгруппирован вместе. Любые источники, у которых нет этого свойства, будут компилироваться индивидуально. Свойство UNITY_BUILD_BATCH_SIZE игнорируется при использовании этого режима.

Пример использования:

add_library(example_library
            source1.cxx
            source2.cxx
            source3.cxx
            source4.cxx)

set_target_properties(example_library PROPERTIES
                      UNITY_BUILD_MODE GROUP
                      )

set_source_files_properties(source1.cxx source2.cxx source3.cxx
                            PROPERTIES UNITY_GROUP "bucket1"
                            )
set_source_files_properties(source4.cxx
                            PROPERTIES UNITY_GROUP "bucket2"
                            )

Если явно не задано свойство UNITY_BUILD_MODE, CMake по умолчанию использует BATCH.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/prop_tgt/UNITY_BUILD_MODE.html

Spec-Zone.ru

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