Вы ничего не пропустили, просто не работает переменная CPACK_INSTALL_COMMANDS.
В типичном проекте CPack выполняет временную установку «make install», чтобы построить окончательный установщик на основе дерева «make install». Переменная CPACK_INSTALL_COMMANDS предназначена для проектов, которые скорее запускают какую-то другую последовательность команд, вместо типичной "make install", чтобы создать дерево установки.
Итак, CPack должен запускать ваши команды , поскольку он генерирует пакет . Он не будет запускать ваши команды на компьютере конечного пользователя, если он / она запускает сгенерированный сценарий установки ...
Существуют способы запуска установленных исполняемых файлов и / или сценариев для каждого генератора в конце установки конечного пользователя, но это потребует некоторой настройки с вашей стороны. В этом случае я бы порекомендовал попытаться переопределить входной файл CPack.STGZ_Header.sh.in, который используется, когда CPack генерирует самораспаковывающийся скрипт STGZ. Настройте этот файл и добавьте свои звонки в конец, над строкой:
exit 0
Чтобы переопределить файл, предоставьте свою собственную копию в дереве исходных текстов, возможно, в каталоге $ {CMAKE_CURRENT_SOURCE_DIR} / CMake, а затем в файле CMakeLists.txt добавьте:
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH})
(На самом деле, когда я пишу это, мне интересно, достаточно ли этого, или нужно ли также указывать путь к модулю во время запуска CPack ... Попробуйте это, и дайте нам знать, если ваша настройка привыкнет к CPack или нет. Если нет, я расскажу немного подробнее и добавлю еще несколько советов.)