cmake很多INTERFACE_INCLUDE_DIRECTORIES

时间:2017-02-28 13:06:06

标签: cmake

我正在创建一个导入的目标,希望公开两个接口包含目录:

list(APPEND LIB_INCLUDE_DIRS "dir1")
list(APPEND LIB_INCLUDE_DIRS "dir2")

add_library(lib SHARED IMPORTED GLOBAL)
set_target_properties(
    lib
    PROPERTIES
    IMPORTED_LOCATION "something"
    INTERFACE_INCLUDE_DIRECTORIES ${LIB_INCLUDE_DIRS}
)

不幸的是,有一个错误:使用错误的参数数调用set_target_properties。

如果我尝试只设置第一个目录,它就可以了。有没有办法设置两者?或者INTERFACE_INCLUDE_DIRECTORIES的复数形式是否具有讽刺意味?

1 个答案:

答案 0 :(得分:5)

只需将目录列表放在引号

set_target_properties(
    lib
    PROPERTIES
    IMPORTED_LOCATION "something"
    INTERFACE_INCLUDE_DIRECTORIES "${LIB_INCLUDE_DIRS}"
)

否则列表会再次扩展为参数。

<强>参考