Spec-Zone.ru › CMake 3.10

FindOpenGL

Модуль поиска OpenGL и GLU.

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

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

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

Этот модуль определяет целевые импорты IMPORTED:

OpenGL::GL
Определяется для платформ-специфичных библиотек OpenGL, если на системе есть OpenGL.
OpenGL::OpenGL
Определяется как libOpenGL, если система основана на GLVND. OpenGL::GL
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).
LEGACY
Отдать предпочтение использованию библиотеки libGL, если она доступна. Это значение по умолчанию, если компоненты не запрашивались.

Для целей 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.10/module/FindOpenGL.html

Spec-Zone.ru

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