在我的项目中,我使用 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目标构建您的文件。目前,您的自定义目标 Core-static
不是默认构建的(ALL 目标)。要解决此问题,请在创建目标时添加 ALL
关键字:
add_custom_target(Core-static ALL DEPENDS ${LIB_NAME})
关于c++ - cmake install 不触发自定义命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257763/