在已安装的目标二进制文件上具有cmake run命令

时间:2018-08-22 20:57:34

标签: cmake

安装后,我想在目标上运行命令。我看到“ cmake run script for install target?”,它似乎与安装所有组件后运行一个脚本有关。我的问题是针对每个目标的脚本。

我想要做的是在已安装的二进制文件上运行patchelf来更改解释器。这很像cmake如何更改已安装二进制文件上的RPATH。研究如何完成此操作,我在cmake_install.cmake(为简便起见而编辑)中看到了以下内容:

file(INSTALL DESTINATION "/bin" TYPE EXECUTABLE FILES "program")
file(RPATH_CHANGE
     FILE "$ENV{DESTDIR}/bin/program"
     OLD_RPATH "build-dir"
     NEW_RPATH "")
if(CMAKE_INSTALL_DO_STRIP)
    execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}/bin/program")
endif()

这将更改rpath并在安装二进制文件后剥离它。看来我需要做的就是在其中再放一个execute_process来运行我的patchelf命令。然而,我找不到任何办法让cmake做到这一点。

看来add_custom_command(POST_BUILD ...)很近,但是我不想修改build目录中的二进制文件,仅在安装后才能修改,例如cmake如何修改rpath。

0 个答案:

没有答案