如何查询目标是否是CMake中的INTERFACE库

How to query whether a target is an INTERFACE library in CMake

在现代 CMake 中,可以将库指定为 INTERFACE:它不生成构建输出,但它可以具有与之关联的属性,尽管并非所有属性都可以设置(例如 FOLDER 属性 不受支持)。假设我有一个通用库目标的通用 CMake 宏设置属性,有没有办法告诉输入目标是一个接口库,以便我可以只跳过该目标不支持的属性?

您查询目标TYPE属性....

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