Как использовать файл cmake (GET_RUNTIME_DEPENDENCIES в инструкции установки? - PullRequest
1 голос
/ 14 июля 2020

Как использовать файл (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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...