В настоящее время я работаю над проектом cmake, в котором используются внешние библиотеки, которые импортируются с помощью функции find_package. Мой вопрос вращается вокруг cpack и того, как я должен добавлять найденные пакеты в вывод cpack. Например, если я использую это
find_package(OpenGL REQUIRED)
add_executable(Example_App MACOSX_BUNDLE src/main.cpp)
target_include_directories(Example_App SYSTEM PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(Example_App PUBLIC ${OPENGL_LIBRARIES})
install(TARGETS Example_App
BUNDLE DESTINATION "."
RUNTIME DESTINATION bin)
Если я затем запустил cmake .., а затем make и make package, мой вывод из cpack (я могу включить пример своего кода cpack, если это необходимо), тогда будет. ExampleApp-linux.tar.bz2
- bin
-- Example_App
- Share
-- Resource files
Скорее, чем что-то вроде:
- bin
-- Example_App
- Lib
-- OpenGL.a
- Share
-- Resource files
Любая помощь приветствуется!





Вам нужно будет явно добавить правило установки для внешних библиотек проекта.
Например:
install(FILES ${OPENGL_LIBRARIES}
RUNTIME DESTINATION bin COMPONENT RuntimeLibraries
LIBRARY DESTINATION bin COMPONENT RuntimeLibraries
ARCHIVE DESTINATION Lib COMPONENT Development
)
Или вы можете использовать конкретную ссылку на библиотеку, например ${OPENGL_gl_LIBRARY}, вместо ${OPENGL_LIBRARIES}. Подробнее см. Модули / FindOpenGL.cmake.