Как «связать все» динамические и / или статические библиотеки, используя путь к папке и cmake? - PullRequest
0 голосов
/ 11 февраля 2019

В моем тестовом проекте у меня есть структура папок следующего вида:

-Root/
 -Lib_so/   //folder where it contains all of the .so file
 -Lib_a/    //folder where it contains all of the .a file
 -Lib_dll/  //folder where it contains all of the dll file
 -Includes/ //folder where it contains all of the header files
 -main.cpp

Я хочу написать CMakeLists.txt, который генерирует один исполняемый файл, который:

  1. автоматически связывает ВСЕ файлы .so, .a и / или dll только путем к указанному выше пути к папке.
  2. связывает установленные двоичные файлы (например, GLFW, установленныйварево на макинтош)

Я пробовал следующее

cmake_minimum_required(VERSION 3.0)
project(FirstOpenGL)
set(SOURCE main.cpp)
add_executable(myapp ${SOURCE})

#Below Im trying to link ALL of the libs under the "project's local path"
include_directories(${CMAKE_SOURCE_DIR}/Includes)
link_directories(LinkPathSo  ${CMAKE_SOURCE_DIR}/Lib_so)
link_directories(LinkPathA   ${CMAKE_SOURCE_DIR}/Lib_a)
link_directories(LinkPathDll ${CMAKE_SOURCE_DIR}/Lib_dll)

target_link_libraries(myapp LinkPathSo)
target_link_libraries(myapp LinkPathA)  
target_link_libraries(myapp LinkPathDll)  


# Below: Im trying to link the installed binaries on mac
find_package(glfw3 3.2 REQUIRED)
find_package(OpenGL REQUIRED)

target_include_directories(myapp ${OPENGL_INCLUDE_DIR})
target_link_libraries(myapp ${OPENGL_gl_LIBRARY})
target_link_libraries(myapp ${OPENGL_glu_LIBRARY})

Спасибо всем заранее

...