# CMP0072

`FindOpenGL` prefers GLVND by default when available.

The `FindOpenGL` module provides an `OpenGL::GL` target and an `OPENGL_LIBRARIES` variable for projects to use for legacy GL interfaces. When both a legacy GL library (e.g. `libGL.so`) and GLVND libraries for OpenGL and GLX (e.g. `libOpenGL.so` and `libGLX.so`) are available, the module must choose between them. It documents an `OpenGL_GL_PREFERENCE` variable that can be used to specify an explicit preference. When no such preference is set, the module must choose a default preference.

CMake 3.11 and above prefer to choose GLVND libraries. This policy provides compatibility with projects that expect the legacy GL library to be used.

The `OLD` behavior for this policy is to set `OpenGL_GL_PREFERENCE` to `LEGACY`. The `NEW` behavior for this policy is to set `OpenGL_GL_PREFERENCE` to `GLVND`.

This policy was introduced in CMake version 3.11. CMake version 3.16.2 warns when the policy is not set and uses `OLD` behavior. Use the `cmake_policy()` command to set it to `OLD` or `NEW` explicitly.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.