【问题标题】:How to tell whether a given target is a library or executable?如何判断给定目标是库还是可执行文件?
【发布时间】:2018-01-11 00:38:58
【问题描述】:

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

我找不到 CMake 的默认目标属性列表,但我猜 add_library()add_executable() 添加了可用于这种区分的属性。

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

【问题讨论】:

    标签: cmake


    【解决方案1】:

    根据文档,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 ()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 2021-12-29
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多