【问题标题】:cmake install does not trigger custom commandcmake install 不会触发自定义命令
【发布时间】:2019-01-18 16:18:10
【问题描述】:

在我的项目中,我使用 add_custom_command 生成一些输出文件:

    add_custom_command(
        OUTPUT ${LIB_NAME}
        # commands
    )
    add_custom_target(Core-static DEPENDS ${LIB_NAME})

然后我有安装库的说明:

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}"
        DESTINATION "${CORE_INSTALL_DIR}/lib/"
)

当我手动构建核心静态目标时,我可以成功运行安装。但是,运行 install 不会触发自定义命令,并且不会生成库,从而导致错误。此外,由于某种原因,重建解决方案(在 Visual Studio 中)不会触发核心静态项目构建。

【问题讨论】:

    标签: c++ c cmake


    【解决方案1】:

    在 CMake 中,安装触发器仅 ALL(伪)目标。

    为了使您的文件可安装,您需要强制 ALL 目标来构建您的文件。目前,您的自定义目标 Core-static 默认情况下不存在(通过 ALL 目标)。为了解决这个问题,请在创建目标时添加 ALL 关键字:

    add_custom_target(Core-static ALL DEPENDS ${LIB_NAME})
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多