Как вызвать функцию CMake из add_custom_target/command?
Можно ли вызвать функцию CMake из add_custom_target
или add_custom_command
?
Я знаю, что я мог бы переместить функцию CMake на Python (или любой другой ) сценарий и вызвать его из add_custom_target
/command
, но я хотел бы избежать тонн сценария рядом с существующим CMake ниже.
Чего я хочу добиться, так это использовать CPack для создания zip-пакета бинарных артефактов и публиковать их в хранилище артефактов. Для части публикации я уже создал функцию CMake, но теперь мне нужно объединить упаковку и публикацию вместе.
Спасибо за любую помощь/подсказки заранее.
Ответы
Ответ 1
Я столкнулся с этой проблемой при написании системы сборки CMake для BVLC/Caffe. Что я, наконец, сделал, так это то, что я помещал содержимое функции в отдельный CMake script и вызывал его из add_custom_target
, вызывая:
add_custom_target(target_name
COMMAND ${CMAKE_COMMAND} -P path_to_script
)
Вызов CMake с флагом -P
означает, что он действует как язык сценариев. Вы можете поместить любые функции CMake внутри script.
Ответ 2
Я искал то же самое, и через несколько минут я понял, что это невозможно, потому что cmake является генератором сборки-генератора.
Эта команда будет просто запущена в другое время, например, из вашей IDE, когда cmake просто не существует.