2016-12-21 3 views
2

У меня есть проект, где «установка» кода не так просто, как просто копирование некоторых файлов. С традиционным Makefile я бы просто создал цель make install, которая запускает ряд команд оболочки, чтобы делать то, что мне нужно.скрипт сценария cmake для установки цели?

Но поиск в Google не приводит к тому, что нет примеров этого (некоторые вещи близки, но не совсем ... я думаю). Таким образом, в основном, мне нужна пользовательская команда, которая зависит от целевых исполняемых файлов, но ничего не производит и запускает скрипт, который не должен быть переносимым для выполнения «установки»

У кого-нибудь есть примеры чего-то подобного?

ответ

4

Команда CMake's install позволяет создавать собственные скрипты. Смотрите официальную документацию: install - Custom Installation Logic:

форма
install([[SCRIPT <file>] [CODE <code>]] 
     [COMPONENT <component>] [...]) 

Сценарий будет вызывать указанные файлы сценариев CMake во время установки. Если имя файла сценария является относительным путем, оно будет интерпретироваться относительно текущего исходного каталога. Форма CODE будет вызывать данный код CMake во время установки. Код указан как один аргумент внутри строки с двумя кавычками. Например, код

install(CODE "MESSAGE(\"Sample install message.\")") 

распечатает сообщение во время установки.

Чтобы запустить пользовательский сценарий оболочки (или любой другой программы), смешайте с install(CODE ...)execute_process:

install(CODE "execute_process(COMMAND my_script.sh)") 
+0

Конечно, это позволит мне запустить CMake сценарий. Но могу ли я сделать произвольные команды bash во время этого? –

+0

@EvanTeran Я отредактировал свой ответ. –

Смежные вопросы