В CMake есть импортированные модули, которые используются для простого добавления внешних модулей к локальным целям.Например, если мы хотим использовать библиотеку boost::filesystem
в нашем проекте, у нас может быть CMakeLists.txt
, подобный следующему:
project(foo CXX)
find_packge(Boost REQUIRED COMPONENTS filesystem)
add_executable(foo main.cpp)
target_link_libraries(foo Boost::filesystem)
При указанной конфигурации CMake добавит правильные параметры компилятора и включит каталоги из необходимых библиотек в сборку.процесс foo
.
Теперь нам нужно создать библиотеку вместо исполняемого файла, и мы не хотим связывать библиотеки boost::filesystem
с нашей библиотекой.Мы хотим, чтобы к нашей цели добавлялись только параметры компилятора и включали каталоги.Можем ли мы использовать концепции импортированных модулей здесь?Я имею в виду, что если бы мы могли использовать синтаксис Boost::filesystem
для добавления этих опций к нашей цели?
project(foo CXX)
find_packge(Boost REQUIRED COMPONENTS filesystem)
add_library(foo STATIC foo.cpp)
# what should be wrote here to only add headers and configs to foo not the libs?