You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.1 KiB
CMake

# Try to find Mesa off-screen library and include dir.
# Once done this will define
#
# OSMesa_FOUND - true if OSMesa has been found
# OSMesa_INCLUDE_DIRS - where the GL/osmesa.h can be found
# OSMesa_LIBRARIES - Link this to use OSMesa
# OSMesa_VERSION - Version of OSMesa found
# OSMesa::OSMesa - Imported target
find_path(OSMESA_INCLUDE_DIR
NAMES GL/osmesa.h
PATHS "${OSMESA_ROOT}/include"
"$ENV{OSMESA_ROOT}/include"
/usr/openwin/share/include
/opt/graphics/OpenGL/include
DOC "OSMesa include directory")
mark_as_advanced(OSMESA_INCLUDE_DIR)
find_library(OSMESA_LIBRARY
NAMES OSMesa OSMesa16 OSMesa32
PATHS "${OSMESA_ROOT}/lib"
"$ENV{OSMESA_ROOT}/lib"
/opt/graphics/OpenGL/lib
/usr/openwin/lib
DOC "OSMesa library")
mark_as_advanced(OSMESA_LIBRARY)
if (OSMESA_INCLUDE_DIR AND EXISTS "${OSMESA_INCLUDE_DIR}/GL/osmesa.h")
file(STRINGS "${OSMESA_INCLUDE_DIR}/GL/osmesa.h" _OSMesa_version_lines
REGEX "OSMESA_[A-Z]+_VERSION")
string(REGEX REPLACE ".*# *define +OSMESA_MAJOR_VERSION +([0-9]+).*" "\\1" _OSMesa_version_major "${_OSMesa_version_lines}")
string(REGEX REPLACE ".*# *define +OSMESA_MINOR_VERSION +([0-9]+).*" "\\1" _OSMesa_version_minor "${_OSMesa_version_lines}")
string(REGEX REPLACE ".*# *define +OSMESA_PATCH_VERSION +([0-9]+).*" "\\1" _OSMesa_version_patch "${_OSMesa_version_lines}")
set(OSMesa_VERSION "${_OSMesa_version_major}.${_OSMesa_version_minor}.${_OSMesa_version_patch}")
unset(_OSMesa_version_major)
unset(_OSMesa_version_minor)
unset(_OSMesa_version_patch)
unset(_OSMesa_version_lines)
endif ()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OSMesa
REQUIRED_VARS OSMESA_INCLUDE_DIR OSMESA_LIBRARY
VERSION_VAR OSMesa_VERSION)
if (OSMesa_FOUND)
set(OSMesa_INCLUDE_DIRS "${OSMESA_INCLUDE_DIR}")
set(OSMesa_LIBRARIES "${OSMESA_LIBRARY}")
if (NOT TARGET OSMesa::OSMesa)
add_library(OSMesa::OSMesa UNKNOWN IMPORTED)
set_target_properties(OSMesa::OSMesa PROPERTIES
IMPORTED_LOCATION "${OSMESA_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${OSMESA_INCLUDE_DIR}")
endif ()
endif ()