2013-02-14 5 views
3

Есть ли аналогияПредварительно установить код

install(CODE ...) # this code is executing AFTER install step 

для предварительной установки шага в CMake?

Я предполагаю выполнение кода в POST_BUILD шаге, но как запустить этот код?

ответ

2

На самом деле, install(CODE) и install(SCRIPT) выполняются в том порядке, в котором они появляются среди других install() команд, так что если ваш вызов install(CODE) является первым install() вызовом, он будет выполнен перед всеми другими командами установки.

Обратите внимание, что упомянутые выше заказы (install() команды, выполненные в порядке появления) применяются для команд в рамках одного компонента установки и одного файла CMakeList (спасибо @John за указание этого в комментариях). Тем не менее, для предполагаемого шага «pre-install» установка команды на первое место в первом CMakeList должна работать.

+0

Это неверно, если команды установки предназначены для разных компонентов. Затем они будут выполняться в алфавитном порядке имен компонентов. Это также неверно для команд установки, которые предназначены для одного и того же компонента, но в разных файлах cmake. В этом случае команды установки в файлах cmake подкаталога исполняются впоследствии. – John