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 版本中被移除。