如何判断给定目标是库还是可执行文件?

时间:2015-08-09 17:28:26

标签: cmake

内置函数install(TARGETS ...)将库目标安装到可执行目标以外的其他位置。我想做类似的事情。给定目标名称列表,我想将其中的所有库目标添加到列表变量,将所有运行时目标添加到另一个变量。

我找不到CMake的默认目标属性列表,但我想add_library()add_executable()添加了一个可用于此类区分的属性。< / p>

如何判断给定目标是库还是可执行文件(甚至是其他东西)?

1 个答案:

答案 0 :(得分:17)

根据文档,TYPE属性可用于区分标准CMake目标类型:

  

它将是STATIC_LIBRARY,MODULE_LIBRARY,SHARED_LIBRARY,EXECUTABLE或其中一个内部目标类型之一。

示例:

get_target_property(target_type <target> TYPE)
if (target_type STREQUAL "EXECUTABLE")
  # Process executable target
endif ()