Installation 在CMake中,如何在安装目标后运行脚本?

Installation 在CMake中,如何在安装目标后运行脚本?,installation,cmake,Installation,Cmake,我正在尝试在CMake安装完成后运行脚本。我找到了,但仍然不起作用,因为我的脚本取决于安装的目标 基本上,我的脚本是在安装目标之前运行的。这是因为CMake似乎将安装子目录目标的代码放在CMake\u install.CMake 这里有一个例子说明了这个问题;子目录CMake文件: # src/CMakeLists.txt add_executable(foo main.cpp) install(TARGETS foo DESTINATION bin) # Top-level CMakeLis

我正在尝试在CMake安装完成后运行脚本。我找到了,但仍然不起作用,因为我的脚本取决于安装的目标

基本上,我的脚本是在安装目标之前运行的。这是因为CMake似乎将安装子目录目标的代码放在
CMake\u install.CMake

这里有一个例子说明了这个问题;子目录CMake文件:

# src/CMakeLists.txt
add_executable(foo main.cpp)
install(TARGETS foo DESTINATION bin)
# Top-level CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
add_subdirectory(src)
install(CODE "execute_process(COMMAND ls ${CMAKE_INSTALL_PREFIX}/bin/foo)")
顶级CMake文件:

# src/CMakeLists.txt
add_executable(foo main.cpp)
install(TARGETS foo DESTINATION bin)
# Top-level CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
add_subdirectory(src)
install(CODE "execute_process(COMMAND ls ${CMAKE_INSTALL_PREFIX}/bin/foo)")
运行
makeinstall

-- Install configuration: "debug"
ls: cannot access /tmp/dummy/bin/foo: No such file or directory
-- Installing: /tmp/dummy/bin/foo

你知道我该如何处理这种行为吗?谢谢

如果您发现cmake将sub-dir安装目标放在cmake_安装的末尾,您可以使用cmake添加另一个子目录,其中包含在所有其他目标之后需要执行的操作。

我最终使用了此解决方案。谢谢你。这是可行的,但是需要更多关于将列表从生成步骤传递到以后执行的安装步骤。