在我的项目中,我使用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项目的构建。
答案 0 :(得分:1)
在CMake中,仅安装 ALL (伪)目标触发器。
要使文件可安装,您需要强制 ALL 目标来构建文件。当前,默认情况下,您的自定义目标Core-static
不会被设置(通过 ALL 目标)。要解决此问题,请在创建目标时添加ALL
关键字:
add_custom_target(Core-static ALL DEPENDS ${LIB_NAME})