же
В общем, меня интересует, как во всяких либах реализована такая фича, при которой если подключить к проекту либу через алиас: target_link_libraries(... libname::blabla), то вместе с этим оно тащит и всякие директории для инклюдов, что мне не приходится дополнительно прописывать полный путь к нужному хедеру, а всего-лишь достаточно написать
#include "libname/header.hpp"
хотя если бы я тащил либу не через алиас: target_link_libraries(... libname), то чтобы добиться прошлого результата с нормальными путями для инклюдов, мне нужно было бы дописать target_include_directories(... path_to_lib/include).
Для примера покопался в fmt, но каких-то особых манипуляций конкретно над алиасом fmt::fmt в листах я не нашёл.
Вот как реализовано это колдовство с алиасами, что оно само тащит тебе всё на свете?
https://stackoverflow.com/a/31969632
В случае link_libraries(libname) - ты ищешь только либу, в случае libname::bla-bla - ты ищешь cmake target, в котором в том числе описаны include-директории
Обсуждают сегодня