不知怎的,我正在努力找出是否可以在CMake中定义导入的库,指定目标属性(include_directories和库路径),并希望一旦我将该项目添加到另一个项目中的target_link_libraries,CMake将追加包含目录
假设我在一个名为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目录中吗?
非常感谢。 马丁
答案 0 :(得分:14)
INCLUDE_DIRECTORIES
属性和INTERFACE_INCLUDE_DIRECTORIES
属性之间的差异是传递性。
改为设置INTERFACE_INCLUDE_DIRECTORIES
。
http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements