Как вызвать функцию CMake из команды add_custom_target /?

Можно ли вызвать функцию CMake из add_custom_target или add_custom_command? Я знаю, что мог бы переместить функцию CMake в скрипт Python (или любой другой) и вызвать его из команды add_custom_target /, но я бы хотел избежать множества скриптов рядом с существующей инфраструктурой CMake.

Чего я хочу добиться, так это использовать CPack для создания zip-пакета бинарных артефактов и публиковать их в хранилище артефактов. Для части публикации я уже создал функцию CMake, но теперь мне нужно объединить упаковку и публикацию вместе.

Спасибо за любую помощь / подсказки заранее.

Мартин

12

Решение

Я столкнулся с этой проблемой при написании системы сборки CMake для BVLC / Caffe. В конце концов я поместил содержимое функции в отдельный скрипт CMake и вызвал его изнутри. add_custom_target вызывая:

add_custom_target(target_name
COMMAND ${CMAKE_COMMAND} -P path_to_script
)

Вызов CMake с -P Флаг заставляет его выступать в качестве языка сценариев. Вы можете поместить любые функции CMake в скрипт.

20

Другие решения

Я искал то же самое, и через несколько минут я понял, что это невозможно, потому что cmake является генератором сборки-генератора.

Эта команда будет просто запущена в другое время, например, из вашей IDE, когда cmake просто не существует.

0

По вопросам рекламы [email protected]