Как использовать Cmake ExternalProject_Add для добавления библиотеки из github - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь клонировать и собрать сторонние библиотеки из git, используя Cmake's ExternalProject_Add.

Может кто-нибудь объяснить мне, как правильно использовать ExternalProject_Add?

В настоящее время у меня есть это в моем CmakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(openGLtest)

include(ExternalProject)
set(CMAKE_CXX_STANDARD 17)
set(OUTPUT_DIR ${PROJECT_SOURCE_DIR}/glfw)
set(CMAKE_CXX_FLAGS "-framework Cocoa -framework IOKit -framework CoreFoundation -framework CoreVideo")

ExternalProject_Add(glfw
        GIT_REPOSITORY https://github.com/glfw/glfw.git
        CMAKE_ARGS  -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR})

include_directories(glad/include)
include_directories(${OUTPUT_DIR}/include)
link_directories(${OUTPUT_DIR}/lib)

add_executable(openGLtest glad/src/glad.c main.cpp)
add_dependencies(openGLtest glfw)
target_link_libraries(openGLtest glfw3.a)

Я использую GLFW и GLAD. Проблема в том, что зависимости GLFW не связываются при компиляции, поэтому я добавил строку set CMAKE_CXX_FLAGS. Теперь все компилируется, но я почти уверен, что заносить в флажки системного компилятора - неправильное решение.

-EDIT-

Моя проблема не с этой библиотекой, а с поиском правильного способа настройки моего Cmake для получения библиотек, которые нужны моему проекту, из Интернета, когда я собираю проект. Я уверен, что Cmake способен извлекать или загружать необходимые библиотеки при сборке моего проекта. Мне также кажется, что использование ExternalProject_Add является правильным способом сделать это. Я просто не знаю, как использовать ExternalProject_Add для получения библиотек, без каких-либо странных ошибок компиляции.

Любая помощь будет принята с благодарностью. Я застрял с этой проблемой почти неделю.

...