Можно добавить импортированную библиотеку в target_link_libraries, которая также включает каталоги include?
как-то я борюсь с выяснением, можно ли определить импортированную библиотеку в CMake, указав целевые свойства (include_directories и путь к библиотеке) и надеясь, что CMake добавит каталоги include, как только я добавлю этот проект в target_link_libraries в другом проекте.
Скажем, у меня есть импортированная библиотека в файле Module-Conf.cmake:
add_library(mymodule STATIC IMPORTED)
set_target_properties(mymodule PROPERTIES IMPORTED_LOCATION "${OUTPUT_DIR}/lib")
set_target_properties(mymodule PROPERTIES INCLUDE_DIRECTORIES "${OUTPUT_DIR}/include")
И в проекте я добавляю зависимость:
include(Module-Conf)
target_link_libraries(${PROJECT_NAME} mymodule)
Будет ли CMake добавлять свойство include_directories в путь включения? Прямо сейчас я не вижу путь, поэтому кажется, что я должен сделать это сам, используя get_target_property?
Вопрос: могу ли я сделать магию CMake для автоматического добавления include в каталоги include другого проекта?
Большое спасибо.
Мартин
Ответы
Ответ 1
Разница между свойством INCLUDE_DIRECTORIES
и свойством INTERFACE_INCLUDE_DIRECTORIES
является транзитивностью.
Установите INTERFACE_INCLUDE_DIRECTORIES
вместо этого.
http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements