Spec-Zone.ru › CMake 3.14

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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.14/module/FindOpenGL.html

Spec-Zone.ru

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