Cmake 从接口库获取源文件

Cmake 从接口库获取源文件,cmake,Cmake,我有一个只包含头的库,我想为其编写一个CMake文件,以便在其他项目中使用。为此,我需要将库声明为接口目标。然后通过子文件夹中的CMakeList.txt文件添加头文件 现在,我想获得源文件列表,以便在其上运行叮当格式。但是,get\u target\u属性对接口目标不起作用。有没有办法从接口目标中提取源(或头) 这是我目前拥有的代码(不起作用) 错误消息 INTERFACE_LIBRARY targets may only have whitelisted properties. The p

我有一个只包含头的库,我想为其编写一个CMake文件,以便在其他项目中使用。为此,我需要将库声明为接口目标。然后通过子文件夹中的CMakeList.txt文件添加头文件

现在,我想获得源文件列表,以便在其上运行叮当格式。但是,
get\u target\u属性
对接口目标不起作用。有没有办法从接口目标中提取源(或头)

这是我目前拥有的代码(不起作用)

错误消息

INTERFACE_LIBRARY targets may only have whitelisted properties.  The
property "SOURCES" is not allowed.

我试图将接口目标链接到一个真实的目标并以这种方式获取源,但我只将源直接添加到第二个目标,而不是接口目标的源

,因为您的目标声明为
接口
,所以命令填充目标的属性,而不是
。从文档中:

需要使用
接口
公共
私有
关键字来指定以下参数的范围<代码>私有和
公共
项将填充
属性<代码>公共和
接口
项将填充
接口源
属性

请尝试抓取
接口\u SOURCES
属性:

add_library(bar INTERFACE)

# add header files in sub folders with
target_sources(bar INTERFACE
    "${CMAKE_CURRENT_SOURCE_DIR}/header.h"
    )

# this gives the error
get_target_property(MY_SOURCES bar INTERFACE_SOURCES)
add_library(bar INTERFACE)

# add header files in sub folders with
target_sources(bar INTERFACE
    "${CMAKE_CURRENT_SOURCE_DIR}/header.h"
    )

# this gives the error
get_target_property(MY_SOURCES bar INTERFACE_SOURCES)