我正在尝试在CMake安装完成后运行脚本。我找到了this thread on 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
知道如何解决这个问题吗?谢谢!
答案 0 :(得分:3)
如果您发现cmake将sub-dir安装目标放在cmake_install的末尾,您可以添加另一个带有cmake的子目录,其中包含您在所有其他目标之后需要执行的操作。