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 的未来版本中删除。