Spec-Zone.ru › CMake 3.11

FindOpenGL

FindМодуль для OpenGL и GLU.

Дополнительные компоненты

Этот модуль поддерживает несколько дополнительных компонентов: EGL, GLX, и OpenGL. Для каждого из этих флагов существуют соответствующие импортируемые цели.

Импортируемые цели

Этот модуль определяет следующие IMPORTED цели:

OpenGL::GL
Определяется для платформенно-специфичных OpenGL библиотек, если на системе есть OpenGL.
OpenGL::OpenGL
Определяется для libOpenGL, если система основана на GLVND.
OpenGL::GLU
Определяется, если на системе есть GLU.
OpenGL::GLX
Определяется, если на системе есть GLX.
OpenGL::EGL
Определяется, если на системе есть EGL.

Переменные результата

Этот модуль устанавливает следующие переменные:

OPENGL_FOUND
Истина, если на системе есть OpenGL и все компоненты найдены.
OPENGL_XMESA_FOUND
Истина, если на системе есть XMESA.
OPENGL_GLU_FOUND
Истина, если на системе есть GLU.
OpenGL_OpenGL_FOUND
Истина, если на системе есть библиотека OpenGL.
OpenGL_GLX_FOUND
Истина, если на системе есть GLX.
OpenGL_EGL_FOUND
Истина, если на системе есть EGL.
OPENGL_INCLUDE_DIR
Путь к каталогу заголовков OpenGL.
OPENGL_EGL_INCLUDE_DIRS
Путь к каталогу заголовков EGL.
OPENGL_LIBRARIES
Пути к библиотеке OpenGL, библиотекам системного оконного интерфейса и библиотекам GLU. В Linux это предполагает GLX и никогда не верно для целей, основанных на EGL. Клиентам рекомендуется использовать импортируемые цели OpenGL::* вместо этого.

Переменные кэша

Также могут быть установлены следующие переменные кэша:

OPENGL_egl_LIBRARY
Путь к библиотеке EGL.
OPENGL_glu_LIBRARY
Путь к библиотеке GLU.
OPENGL_glx_LIBRARY
Путь к библиотеке GLVND ‘GLX’.
OPENGL_opengl_LIBRARY
Путь к библиотеке GLVND ‘OpenGL’
OPENGL_gl_LIBRARY
Путь к библиотеке OpenGL. Новый код должен отдавать предпочтение импортируемым целям OpenGL::*.

Специфика Linux

Некоторые системы Linux используют GLVND в качестве новой ABI для OpenGL. GLVND отделяет библиотеки контекста от самого OpenGL; OpenGL находится в «libOpenGL», а контексты определяются в «libGLX» или «libEGL». GLVND в настоящее время является единственным способом получения функциональности OpenGL 3+ через EGL, обеспечивающей портативность между поставщиками. Проекты могут явно использовать GLVND с целью OpenGL::OpenGL и либо OpenGL::GLX, либо OpenGL::EGL.

Проекты могут использовать цель OpenGL::GL (или переменную OPENGL_LIBRARIES) для использования устаревших интерфейсов GL. Они будут использовать устаревшую библиотеку GL, расположенную по адресу OPENGL_gl_LIBRARY, если она доступна. Если OPENGL_gl_LIBRARY пуста или не найдена, а GLVND доступен, цель OpenGL::GL будет использовать GLVND OpenGL::OpenGL и OpenGL::GLX (и переменная OPENGL_LIBRARIES будет использовать соответствующие библиотеки). Таким образом, для целей Linux, не основанных на EGL, цель OpenGL::GL является наиболее портабельной.

Переменная OpenGL_GL_PREFERENCE может быть установлена для указания предпочтительного способа предоставления устаревших интерфейсов GL в случае наличия нескольких вариантов. Значение может быть одним из:

GLVND
Если библиотеки GLVND OpenGL и GLX доступны, отдавать предпочтение им. Это принудительно делает OPENGL_gl_LIBRARY пустым. Это значение по умолчанию, если компоненты были запрошены (так как компоненты соответствуют библиотекам GLVND) или если политика CMP0072 установлена в NEW.
LEGACY
Предпочитать использовать библиотеку libGL, если она доступна. Это значение по умолчанию, если компоненты не запрашивались, и политика CMP0072 не установлена в NEW.

Для целей EGL клиент должен полагаться на поддержку GLVND на системе пользователя. Подключение должно использовать цели OpenGL::OpenGL OpenGL::EGL. Использование библиотек GLES* теоретически возможно вместо OpenGL::OpenGL, но этот модуль в настоящее время этого не поддерживает; предложения по улучшению приветствуются.

OPENGL_egl_LIBRARY и OPENGL_EGL_INCLUDE_DIRS определяются в случае GLVND. Для систем Linux, не использующих GLVND, и других систем они не определяются.

Специфика macOS

В OSX FindOpenGL по умолчанию использует фреймворкную версию OpenGL. Пользователям потребуется изменить значения кэша OPENGL_glu_LIBRARY и OPENGL_gl_LIBRARY, чтобы использовать OpenGL с X11 в OSX.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.11/module/FindOpenGL.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API