安装不再存在的文件

时间:2019-12-05 09:30:46

标签: cmake install

通过执行生成的<h1>Header<small>subheader<span class="pull-right">subheader right</span></small></h1> 项目,我可以获得要安装的各种文件的列表。这可以工作,但是在执行安装操作时,有时文件不再可用。环境是构建服务器,文件在其中移动->这会导致构建错误。

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

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

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".

1 个答案:

答案 0 :(得分:2)

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

install(CODE "
    if(NOT EXISTS ${file_to_install})
        message(WARNING \"File ${file_to_install} not found during installation.\")
    endif()
")