我是 cmake 新手,尝试创建一个需要一些第三方库的小项目。我希望库作为 git 存储库始终保持最新。有些库只是 .cpp 和 .hpp 文件(glad、imgui),其他库是 cmake 项目(glfw、glm)。
这个想法是拥有一个将所有库作为一种子项目的第三方项目和一个使用库并包含等的沙箱项目。我想使用现代的 cmake 代码,它不会在框架结构之外安装某些东西。
文件夹结构:
Framework
|--3rd_party
| |--glad
| | |--include
| | |--src
| |--glfw-master
| | |--...
| | |--CMakeLists.txt
| |--glm-master
| | |--..
| | |--CMakeLists.txt
| |--imgui-master
| | |--*.cpp
| | |--*.hpp
| | |--examples
| | | |--*.cpp
| | | |--*.hpp
| |--CMakeLists.txt
|--sandbox
| |--main.cpp
| |--CMakeLists.txt
|--CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
所以我创建了这个文件夹结构以及一些 CMakeLists:
CMakeLists.txt(框架)
cmake_minimum_required(VERSION 3.10)
project(Framework)
add_subdirectory("3rd_party")
add_subdirectory("sandbox")
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt(第 3 方)
#GLFW …Run Code Online (Sandbox Code Playgroud) cmake ×1