Spec-Zone.ru › CMake 3.27

CMP0063

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

Уважать свойства видимости для всех типов целевых объектов.

Свойства целевых объектов <LANG>_VISIBILITY_PRESET и VISIBILITY_INLINES_HIDDEN влияют на видимость символов во время динамической компоновки. При первом введении эти свойства влияли только на компиляцию исходных файлов в динамических библиотеках, модульных библиотеках и исполняемых файлах с установленным свойством ENABLE_EXPORTS. Это было достаточно для основных сценариев использования динамических библиотек и исполняемых файлов с плагинами. Однако некоторые исходные файлы могут компилироваться как часть статических библиотек или объектных библиотек, а затем компоноваться в динамическую библиотеку позднее. CMake 3.3 и выше предпочитает учитывать эти свойства для исходных файлов, скомпилированных во всех типах целевых объектов. Этот политический подход сохраняет совместимость для проектов, ожидающих, что свойства будут работать только для некоторых типов целевых объектов.

Поведение OLD для этой политики заключается в игнорировании свойств видимости для статических библиотек, объектных библиотек и исполняемых файлов без экспорта. Поведение NEW для этой политики заключается в соблюдении свойств видимости для всех типов целевых объектов.

Этот политический подход был введён в версии CMake 3.3. Версия CMake 3.27.9 предупреждает, если политика не задана, и использует поведение OLD. Используйте команду cmake_policy() для явного её задания в OLD или NEW.

Примечание

Поведение OLD политики deprecated by definition и может быть удалено в будущей версии CMake.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/policy/CMP0063.html

Spec-Zone.ru

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