Я недавно начал использовать генератор 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 и бинарный почтовый индекс):
- MY_INSTALL_BIN_DIR = 'бин'
- MY_INSTALL_LIB_DIR = 'Lib'
- 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
.