我正在尝试使用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)
我正在使用GLFW
和GLAD
。问题是GLFW
的依赖项在编译时没有链接,这就是为什么我添加了CMAKE_CXX_FLAGS
行的原因。现在一切都可以编译了,但是我可以肯定,特定于系统的编译器标记中的擦皮毛不是正确的解决方案。
-编辑-
我的问题不是专门针对此库,而是关于寻找正确的方法来设置Cmake,以便在构建项目时从互联网上获取项目所需的库。我确信Cmake在构建项目时能够提取或下载必要的库。在我看来,使用ExternalProject_Add
是正确的方法。我只是不知道如何使用ExternalProject_Add
来获取库,而不会出现奇怪的编译错误。
任何帮助将不胜感激,目前我已经将这个问题困扰了将近一个星期。