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.11.0 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.
CMP0072
FindOpenGL
prefers GLVND by default when available.The
FindOpenGL
module provides anOpenGL::GL
target and anOPENGL_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
andlibGLX.so
) are available, the module must choose between them. It documents anOpenGL_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 setOpenGL_GL_PREFERENCE
toLEGACY
. TheNEW
behavior for this policy is to setOpenGL_GL_PREFERENCE
toGLVND
.This policy was introduced in CMake version 3.11. CMake version 3.11.0 warns when the policy is not set and uses
OLD
behavior. Use thecmake_policy()
command to set it toOLD
orNEW
explicitly... note:: The
OLD
behavior of a policy isdeprecated by definition
and may be removed in a future version of CMake.