CMake / NuGet: обработка идентификатора времени выполнения - PullRequest
0 голосов
/ 04 июня 2019

Я недавно начал использовать генератор NuGet / CPack , но я не понимаю, как перевести мой существующий проект для использования этого нового генератора cpack, в частности для обработки идентификаторов Windows .

Вот моя типичная библиотека + правило установки:

add_library(foo SHARED foo.c)
install(TARGETS foo
  EXPORT ${MY_TARGETS_NAME}
  RUNTIME DESTINATION ${MY_INSTALL_BIN_DIR} COMPONENT Applications
  LIBRARY DESTINATION ${MY_INSTALL_LIB_DIR} COMPONENT Libraries
  INCLUDES DESTINATION ${MY_INSTALL_INCLUDE_DIR}
  ARCHIVE DESTINATION ${MY_INSTALL_LIB_DIR} COMPONENT DebugDevel
)

Где я имел обыкновение (NSIS и бинарный почтовый индекс):

  1. MY_INSTALL_BIN_DIR = 'бин'
  2. MY_INSTALL_LIB_DIR = 'Lib'
  3. MY_INSTALL_INCLUDE_DIR = 'включают'

Однако это, похоже, не совместимо с ожидаемой компоновкой NuGet (и не обрабатывается внутренне генератором). В конце концов генератор отчетов сообщает:

WARNING: Issue: Assembly outside lib folder.
WARNING: Description: The assembly 'bin\gdcmzlib.dll' is not inside the 'lib' folder and hence it won't be added as reference when the package is installed into a project.
WARNING: Solution: Move it into the 'lib' folder if it should be referenced.

Как мне написать мое install(TARGETS) правило, чтобы сохранить существующий макет установки NSIS и соответствовать требованиям NuGet?


Обновление: как объяснено, весь смысл вопроса состоит в том, чтобы сохранить текущее поведение NSIS. Мне нравится, когда рядом с .exe.

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