Spec-Zone.ru › CMake 3.27

FindOpenGL

FindМодуль для OpenGL и OpenGL Utility Library (GLU).

Изменено в версии 3.2: X11 больше не добавляется как зависимость в системах Unix/Linux.

Новое в версии 3.10: Поддержка GLVND на Linux. См. раздел Специфичный для Linux ниже.

Дополнительные КОМПОНЕНТЫ

Новое в версии 3.10.

Этот модуль учитывает несколько дополнительных КОМПОНЕНТОВ:

EGL

Интерфейс EGL между OpenGL, OpenGL ES и базовой системой окон.

GLX

Расширение для X, которое интегрирует OpenGL, OpenGL ES с системой окон X.

OpenGL

Платформенно-независимый API для 3D-графики.

GLES2

Новое в версии 3.27.

Подмножество API OpenGL для систем встраиваемой электроники с ограниченными возможностями.

GLES3

Новое в версии 3.27.

Подмножество API OpenGL для систем встраиваемой электроники с расширенными возможностями.

Импортированные цели

Новое в версии 3.8.

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

OpenGL::GL

Определяется для платформенно-специфичных библиотек OpenGL, если на системе имеется OpenGL.

OpenGL::GLU

Определяется, если на системе имеется OpenGL Utility Library (GLU).

Новое в версии 3.10: Кроме того, определяются следующие целевые библиотеки, специфичные для GLVND:

OpenGL::OpenGL

Определяется для libOpenGL, если система основана на GLVND.

OpenGL::GLX

Определяется, если на системе есть расширение OpenGL для системы окон X (GLX).

OpenGL::EGL

Определяется, если на системе имеется EGL.

OpenGL::GLES2

Новое в версии 3.27.

Определяется, если на системе имеется GLES2.

OpenGL::GLES3

Новое в версии 3.27.

Определяется, если на системе имеется GLES3.

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

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

OPENGL_FOUND

Истина, если на системе есть OpenGL и все компоненты найдены.

OPENGL_XMESA_FOUND

Истина, если на системе имеется XMESA.

OPENGL_GLU_FOUND

Истина, если на системе имеется GLU.

OpenGL_OpenGL_FOUND

Истина, если на системе имеется библиотека OpenGL.

OpenGL_GLX_FOUND

Истина, если на системе имеется GLX.

OpenGL_EGL_FOUND

Истина, если на системе имеется EGL.

OpenGL::GLES2

Определяется, если на системе имеется GLES2.

OpenGL::GLES3

Определяется, если на системе имеется GLES3.

OPENGL_INCLUDE_DIR

Путь к каталогу заголовков OpenGL.

OPENGL_EGL_INCLUDE_DIRS

Путь к каталогу заголовков EGL.

OPENGL_LIBRARIES

Пути к библиотеке OpenGL, библиотекам системы окон и библиотекам GLU. В Linux это предполагает GLX и никогда не верно для целей, основанных на EGL. Клиентам рекомендуется использовать вместо этого цели импорта OpenGL::*.

Новое в версии 3.10: Переменные для библиотек, специфичных для GLVND, OpenGL, EGL и GLX.

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

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

OPENGL_egl_LIBRARY

Путь к библиотеке EGL.

OPENGL_glu_LIBRARY

Путь к библиотеке GLU.

OPENGL_glx_LIBRARY

Путь к библиотеке GLVND 'GLX'.

OPENGL_opengl_LIBRARY

Путь к библиотеке GLVND 'OpenGL'.

OPENGL_gl_LIBRARY

Путь к библиотеке OpenGL. Новый код должен отдавать предпочтение целевым импортам OpenGL::*.

OPENGL_gles2_LIBRARY

Новое в версии 3.27.

Путь к библиотеке OpenGL GLES2.

OPENGL_gles3_LIBRARY

Новое в версии 3.27.

Путь к библиотеке OpenGL GLES3.

Новое в версии 3.10: Переменные для библиотек, специфичных для GLVND, OpenGL, EGL и GLX.

Специфичные для 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 пустым.

Изменено в версии 3.11: Это значение по умолчанию, если политика CMP0072 установлена в OLD, и не запрошены какие-либо компоненты (так как компоненты соответствуют библиотекам 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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/module/FindOpenGL.html

Spec-Zone.ru

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