|
| 1 | +######### |
| 2 | +# Taken from https://github.com/Kitware/VTK/blob/master/CMake/FindOSMesa.cmake |
| 3 | +######### |
| 4 | + |
| 5 | +# Try to find Mesa off-screen library and include dir. |
| 6 | +# Once done this will define |
| 7 | +# |
| 8 | +# OSMesa_FOUND - true if OSMesa has been found |
| 9 | +# OSMesa_INCLUDE_DIRS - where the GL/osmesa.h can be found |
| 10 | +# OSMesa_LIBRARIES - Link this to use OSMesa |
| 11 | +# OSMesa_VERSION - Version of OSMesa found |
| 12 | +# OSMesa::OSMesa - Imported target |
| 13 | + |
| 14 | +find_path(OSMESA_INCLUDE_DIR |
| 15 | + NAMES GL/osmesa.h |
| 16 | + PATHS "${OSMESA_ROOT}/include" |
| 17 | + "$ENV{OSMESA_ROOT}/include" |
| 18 | + /usr/openwin/share/include |
| 19 | + /opt/graphics/OpenGL/include |
| 20 | + DOC "OSMesa include directory") |
| 21 | +mark_as_advanced(OSMESA_INCLUDE_DIR) |
| 22 | + |
| 23 | +find_library(OSMESA_LIBRARY |
| 24 | + NAMES OSMesa OSMesa16 OSMesa32 |
| 25 | + PATHS "${OSMESA_ROOT}/lib" |
| 26 | + "$ENV{OSMESA_ROOT}/lib" |
| 27 | + /opt/graphics/OpenGL/lib |
| 28 | + /usr/openwin/lib |
| 29 | + DOC "OSMesa library") |
| 30 | +mark_as_advanced(OSMESA_LIBRARY) |
| 31 | + |
| 32 | +if (OSMESA_INCLUDE_DIR AND EXISTS "${OSMESA_INCLUDE_DIR}/GL/osmesa.h") |
| 33 | + file(STRINGS "${OSMESA_INCLUDE_DIR}/GL/osmesa.h" _OSMesa_version_lines |
| 34 | + REGEX "OSMESA_[A-Z]+_VERSION") |
| 35 | + string(REGEX REPLACE ".*# *define +OSMESA_MAJOR_VERSION +([0-9]+).*" "\\1" _OSMesa_version_major "${_OSMesa_version_lines}") |
| 36 | + string(REGEX REPLACE ".*# *define +OSMESA_MINOR_VERSION +([0-9]+).*" "\\1" _OSMesa_version_minor "${_OSMesa_version_lines}") |
| 37 | + string(REGEX REPLACE ".*# *define +OSMESA_PATCH_VERSION +([0-9]+).*" "\\1" _OSMesa_version_patch "${_OSMesa_version_lines}") |
| 38 | + set(OSMesa_VERSION "${_OSMesa_version_major}.${_OSMesa_version_minor}.${_OSMesa_version_patch}") |
| 39 | + unset(_OSMesa_version_major) |
| 40 | + unset(_OSMesa_version_minor) |
| 41 | + unset(_OSMesa_version_patch) |
| 42 | + unset(_OSMesa_version_lines) |
| 43 | +endif () |
| 44 | + |
| 45 | +include(FindPackageHandleStandardArgs) |
| 46 | +find_package_handle_standard_args(OSMesa |
| 47 | + REQUIRED_VARS OSMESA_INCLUDE_DIR OSMESA_LIBRARY |
| 48 | + VERSION_VAR OSMesa_VERSION) |
| 49 | + |
| 50 | +if (OSMesa_FOUND) |
| 51 | + set(OSMesa_INCLUDE_DIRS "${OSMESA_INCLUDE_DIR}") |
| 52 | + set(OSMesa_LIBRARIES "${OSMESA_LIBRARY}") |
| 53 | + |
| 54 | + if (NOT TARGET OSMesa::OSMesa) |
| 55 | + add_library(OSMesa::OSMesa UNKNOWN IMPORTED) |
| 56 | + set_target_properties(OSMesa::OSMesa PROPERTIES |
| 57 | + IMPORTED_LOCATION "${OSMESA_LIBRARY}" |
| 58 | + INTERFACE_INCLUDE_DIRECTORIES "${OSMESA_INCLUDE_DIR}") |
| 59 | + endif () |
| 60 | +endif () |
0 commit comments