如何在CMake中查询目标是否为接口库

如何在CMake中查询目标是否为接口库,cmake,cmake-language,Cmake,Cmake Language,在现代CMake中,可以将库指定为接口:它不生成生成输出,但可以具有与其关联的属性,尽管不能设置所有属性(例如文件夹属性不受支持)。假设我有一个通用库目标的通用CMake宏设置属性,有没有办法判断输入目标是接口库,这样我就可以跳过该目标不支持的属性?您可以查询目标的属性 get_target_property(type target TYPE) if (${type} STREQUAL "INTERFACE_LIBRARY")

在现代CMake中,可以将库指定为
接口
:它不生成生成输出,但可以具有与其关联的属性,尽管不能设置所有属性(例如
文件夹
属性不受支持)。假设我有一个通用库目标的通用CMake宏设置属性,有没有办法判断输入目标是接口库,这样我就可以跳过该目标不支持的属性?

您可以查询目标的属性

get_target_property(type target TYPE)
if (${type} STREQUAL "INTERFACE_LIBRARY")