Примеры использования 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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