Я пытаюсь клонировать и собрать сторонние библиотеки из 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
для получения библиотек, без каких-либо странных ошибок компиляции.
Любая помощь будет принята с благодарностью. Я застрял с этой проблемой почти неделю.