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

cmake install does not trigger custom command

本文关键字:自定义 命令 安装 cmake      更新时间:2023-10-16

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

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

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

为了使您的文件可安装,您需要强制 ALL 目标构建您的文件。目前,您的自定义目标Core-static默认不是 buit(按所有目标)。要解决此问题,请在创建目标时添加ALL关键字:

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