cmake的产生类似的安装规则如下:是否可以将安装后命令添加到由cmake生成的顶级Makefile中?
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
.PHONY : install
我想要做的是有cmake_install.cmake后执行一些自定义的命令被调用,所以它看起来是这样的:
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/local/bin/cmake -P cmake_install.cmake
post_install_command_1
...
post_install_command_n
.PHONY : install
我可以使用“add_custom_command(TARGET ... POST_BUILD ...)”来完成我们所写的内容(需要更新6到10个宏)。然而,有一些第三方的东西被安装,我真的不希望为它们添加POST_BUILD自定义命令(目前有19个项目将有更多的项目,并且可能很难确定需要处理的东西在安装之后而不是在安装之后)。我认为如果自定义命令仅用于一个地方(即作为安装处理的最后部分),并且我知道他们将执行所有必要的操作,那么维护起来会容易得多。
是否可以让cmake将命令添加到顶层Makefile的安装规则中?
谢谢!我发誓我尝试过这样的事情,但没有奏效。试了一遍,它似乎工作。猜猜我必须有一个错字(或其他东西),使它无法正常工作。 – joast 2012-04-03 21:33:30
这不适用于我的构建子目录。在从子目录中包含所有cmake_install.cmake之前执行最外面的CMakeLists.txt的结尾。 – rickfoosusa 2015-02-24 22:08:53
有点棘手,特别是关于从根指定子目录安装路径和目标,但最终得到它的工作。 – taranaki 2017-06-13 18:33:31