首页 > 解决方案 > 在另一个目标中包含一个目标的包含目录

问题描述

如何将target1的包含目录(由 制作target_include_directories(target1 t1/include))包含到中target2

我只知道一种方法,即创建一个变量并set()在其中包含目录,然后将该变量重用于另一个目标。但这看起来太不灵活了,我认为 CMake 必须有一个更简单的方法。
我的目标是共享库。

标签: cmake

解决方案


"$<TARGET_PROPERTY:TargetName,INTERFACE_INCLUDE_DIRECTORIES>" 是我要找的

像这样使用:

target_include_directories(MyTarget
    PRIVATE
    "$<TARGET_PROPERTY:OtherTarget,INTERFACE_INCLUDE_DIRECTORIES>"
)

它允许我包含目标目录PUBLIC并将其包含到INTERFACEOtherTargetMyTarget


推荐阅读