使用 CMake 编译 GLFW 静态库

我们用 OpenGL 来创建图形,创建出来的图形需要显示在屏幕上,同时我们的图形可能还需要相应用户的鼠标和键盘输入等。
在设计上,OpenGL 只是负责创建图形等类似的工作,它不负责怎么样创建窗口、接收鼠标和键盘等用户输入的工作。而是把这些工作交给用户去处理,我们需要创建 OpenGL 需要的上下文环境,还需要处理用户输入。这些工作在每个系统上又都不一样,比如 Windows 上的窗口的创建和 Mac 上的是不同的。这将是一个很繁杂的工作,意味着你需要针对不同的系统编写不同的代码。 GLFW 就是用来简化这个工作的,它封装了不同系统上创建 OpenGL 上下文、窗口、用户输入等操作,这样就大大节省了用户编写不同系统相关的代码。
与 GLFW 提供类似功能的库还有 GLUT,SDL,SFML 等,在这里我们使用 GLFW 库。
GLFW 是一个专门针对 OpenGL 的 C 语言库,下面我们要使用 CMake 把它的源码编译成一个静态库,然后在链接进我们的 OpenGL 工程中使用。
你可以从 GLFW 官网 下载其源代码,你会看到如下的目录结构,其中 src/ 和 include/ 就是我们需要的代码和头文件。

在这个目录里面已经有写好的 CMakeLists.txt, 我们只需要使用如下命令即可编译出静态库:

这个 libglfw3.a 就是我们需要的静态库,我是在 Mac 下面进行编译的,在 Windows 上得到的静态库应该是 glfw3.lib 文件。原理类似,只是不同的系统静态库的格式不同。