5

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

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

这是一个说明问题的示例;子目录 CMake 文件:

# src/CMakeLists.txt
add_executable(foo main.cpp)
install(TARGETS foo DESTINATION bin)

顶级 CMake 文件:

# Top-level CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
add_subdirectory(src)
install(CODE "execute_process(COMMAND ls ${CMAKE_INSTALL_PREFIX}/bin/foo)")

运行make install产量:

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

知道如何解决这种行为吗?谢谢!

4

1 回答 1

4

如果您发现 cmake 将子目录安装目标放在 cmake_install 的末尾,您可以添加另一个带有 cmake 的子目录,其中包含您需要在所有其他目标之后完成的操作。

于 2013-02-22T15:35:04.447 回答