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
.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 верхнего уровня?