Как использовать файл (GET_RUNTIME_DEPENDENCIES ...) в сценарии установки cmake? Я не могу найти пример такого использования в Интернете, а утверждение в документации и сообщения об ошибках использования [[]] встроенного пользовательского сценария мне непонятно.
У меня сложилось впечатление, что при установке время, это можно использовать для определения файловых зависимостей вашей цели cmake и потенциально перенести их с вашим действием установки, что делает его пригодным для использования в автономной форме.
Например, мое приложение зависит от QT, и ожидается, что если это настроено правильно, библиотеки DLL QT, необходимые для этого приложения, будут скопированы в корзину. (Я просто хочу быть уверенным, что у меня нет недопонимания его функции и в этом контексте). Он может не копировать файлы напрямую, но я предполагаю, что предоставляет список файлов для копирования, которые затем будут обрабатываться при установке (все выполняется во время установки).
Моя наивная попытка просто запустить что-то в него:
set(TARGET_NAME "myapp")
# installation settings
install(TARGETS ${TARGET_NAME}
[[
file(GET_RUNTIME_DEPENDENCIES
RESOLVED_DEPENDENCIES_VAR RES
UNRESOLVED_DEPENDENCIES_VAR UNRES
CONFLICTING_DEPENDENCIES_PREFIX CONFLICTING_DEPENDENCIES
EXECUTABLES ${TARGET_NAME}
)]]
RUNTIME DESTINATION "${INSTALL_X_BIN}" COMPONENT libraries
LIBRARY DESTINATION "${INSTALL_X_LIB}" COMPONENT libraries
)
Однако это, конечно, дает мне:
CMake Error at applications/CMakeLists.txt:117 (install):
install TARGETS given target " file(GET_RUNTIME_DEPENDENCIES
RESOLVED_DEPENDENCIES_VAR RES
UNRESOLVED_DEPENDENCIES_VAR UNRES
CONFLICTING_DEPENDENCIES_PREFIX CONFLICTING_DEPENDENCIES
EXECUTABLES ${TARGET_NAME}
)" which does not exist.
-- Configuring incomplete, errors occurred!
Я чувствую себя глупо из-за этого, как будто мне не хватает чего-то довольно базового c.