Недавно я узнал, как использовать find_package в CMake, и заметил, что он работает только с предварительно скомпилированными библиотеками.
Эта строка работает как положено:
find_package(Boost COMPONENTS filesystem REQUIRED)
Если это такпозже я могу использовать что-то подобное:
target_link_libraries(target Boost::filesystem)
Использование интерфейсов позволяет очень легко связать все необходимые зависимости, необходимые для Boost.Filesystem. Но было бы замечательно иметь подобное решение для библиотек только для заголовков, таких как Boost.Asio (я знаю, что можно встроить его в отдельный объект, но в качестве примера я буду рассматривать его как библиотеку только для заголовков)
find_package(Boost COMPONENTS asio REQUIRED)
target_link_libraries(target Boost::asio)
И это не будет работать должным образом.
Реализация ASIO требует от нас связать pthread
в UNIX-подобных системах, поэтому мы можем сказать, что эта библиотека имеет зависимость, которая является библиотекой потоков. Есть ли удобное решение использовать его так же, как Boost.Filesystem в CMake?