Включение внешних библиотек в вывод cpack

В настоящее время я работаю над проектом 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

Любая помощь приветствуется!

0

Решение

Вы должны явно добавить правило установки для внешних библиотек проекта.

Например:

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 Больше подробностей.

0

Другие решения

Других решений пока нет …