cmake安装不会触发自定义命令

时间:2019-01-18 16:18:10

标签: c++ c cmake

在我的项目中,我使用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/"
)

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

1 个答案:

答案 0 :(得分:1)

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

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

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