安装不再存在的文件

问题描述 投票:1回答:1

通过执行生成的INSTALL项目,我具有要安装的各种文件的列表。这可以工作,但是在执行安装操作时,有时文件不再可用。环境是构建服务器,文件在其中移动->这会导致构建错误。

解决此问题的一种简便方法是在install命令的OPTIONAL参数中。所以我的问题是:如果安装命令失败,是否可以在运行时输出警告?

这是我的代码,以重新创建问题。在src目录中有文件“ 1.txt”和“ 2.txt”。我建立cmakelists.txt,然后删除“ 2.txt”。之后,执行我得到的INSTALL解决方案。

cmake_minimum_required(VERSION 3.0)

project(documentation)

set(SOURCEDOCUMENTATION "D:/projects/side_master/src/documentation/src")
set(TARGETDOCUMENTATION "D:/projects/side_master/src/documentation/tgt")

file (GLOB files_to_install "${SOURCEDOCUMENTATION}/*")

foreach(file_to_install ${files_to_install})
      install(FILES ${file_to_install} DESTINATION ${TARGETDOCUMENTATION} OPTIONAL)
endforeach()

错误(没有OPTIONAL参数):

-- Install configuration: "Debug"
-- Installing: D:/projects/side_master/src/documentation/tgt/1.txt
CMake Error at cmake_install.cmake:56 (file):
    file INSTALL cannot find
    "D:/projects/side_master/src/documentation/src/2.txt".

我想得到的是一条生成的消息,像这样:

File "D:/projects/side_master/src/documentation/src/2.txt" not found.
cmake install
1个回答
2
投票

您可以使用CMake install(SCRIPT ...)命令的install(CODE ...)install(CODE ...)签名来运行特定于您的用例的自定义安装步骤。此处的自定义步骤将检查要安装的文件是否存在(使用CMake的install逻辑),并在文件不存在时显示警告消息。定制安装命令可能如下所示:

EXISTS
© www.soinside.com 2019 - 2024. All rights reserved.