CMP0072

3.11 版本新增。

FindOpenGL 模块在可用时默认优先使用 GLVND。

FindOpenGL 模块为项目提供了 OpenGL::GL 目标和 OPENGL_LIBRARIES 变量,用于兼容旧的 GL 接口。当同时提供旧版 GL 库(例如 libGL.so)和 OpenGL 及 GLX 的 GLVND 库(例如 libOpenGL.solibGLX.so)时,该模块必须在两者之间做出选择。它提供了一个 OpenGL_GL_PREFERENCE 变量,可用于指定明确的偏好。当未设置此类偏好时,该模块必须选择一个默认偏好。

CMake 3.11 及更高版本倾向于选择 GLVND 库。此策略为期望使用旧版 GL 库的项目提供了兼容性。

此策略的 OLD 行为是将 OpenGL_GL_PREFERENCE 设置为 LEGACY。此策略的 NEW 行为是将 OpenGL_GL_PREFERENCE 设置为 GLVND

此策略在 CMake 版本 3.11 中引入。可以通过 cmake_policy()cmake_minimum_required() 来设置。如果未设置,CMake 会发出警告并使用 OLD 行为。

注意

策略的 OLD 行为是 按定义已弃用,并可能在未来的 CMake 版本中移除。