Примеры использования PUBLIC/PRIVATE/INTERFACE в cmakeC++

Программы на C++. Форум разработчиков
Anonymous
Примеры использования PUBLIC/PRIVATE/INTERFACE в cmake

Сообщение Anonymous »

Я читал о ключевых словах cmake PUBLIC, PRIVATE, INTERFACE и наткнулся на этот абзац здесь, в документации cmake.
Как правило, зависимость следует указывать при использовании target_link_libraries() с ключевым словом PRIVATE, если она используется только реализацией библиотеки, а не в файлах заголовков. Если зависимость дополнительно используется в заголовочных файлах библиотеки (например, для наследования классов), то ее следует указать как ПУБЛИЧНУЮ зависимость. Зависимость, которая не используется реализацией библиотеки, а только ее заголовками, должна быть указана как ИНТЕРФЕЙСНАЯ зависимость.

Я понимаю, как ваш выбор Между этими тремя ключевыми словами влияет на поведение target_link_libraries и target_include_directories, но я не понимаю разницы между тремя случаями, описанными в этом абзаце. Может ли кто-нибудь предоставить игрушечный пример
  • использования зависимости в реализации библиотеки, но не в файлах заголовков ()
  • использование зависимости в реализации библиотеки, а также в файлах заголовков ()
  • использование зависимости в заголовочных файлах библиотеки, но не в реализации (

    Код: Выделить всё

    INTERFACE
    )


Подробнее здесь: https://stackoverflow.com/questions/697 ... d-in-cmake

Вернуться в «C++»