如何使用Cmake ExternalProject_Add从github添加库

时间:2018-07-03 08:53:33

标签: c++ git opengl cmake compilation

我正在尝试使用Cmake的ExternalProject_Add从git克隆和构建第三方库。

有人可以向我解释如何正确使用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)

我正在使用GLFWGLAD。问题是GLFW的依赖项在编译时没有链接,这就是为什么我添加了CMAKE_CXX_FLAGS行的原因。现在一切都可以编译了,但是我可以肯定,特定于系统的编译器标记中的擦皮毛不是正确的解决方案。

-编辑-

我的问题不是专门针对此库,而是关于寻找正确的方法来设置Cmake,以便在构建项目时从互联网上获取项目所需的库。我确信Cmake在构建项目时能够提取或下载必要的库。在我看来,使用ExternalProject_Add是正确的方法。我只是不知道如何使用ExternalProject_Add来获取库,而不会出现奇怪的编译错误。

任何帮助将不胜感激,目前我已经将这个问题困扰了将近一个星期。

0 个答案:

没有答案