Added fallback check for dlopen, clearer use of required libraries.

This commit is contained in:
Camilla Berglund 2012-03-25 17:22:35 +02:00
parent 1eb24ff261
commit 862efe78e3

View File

@ -68,9 +68,6 @@ if (_GLFW_X11_GLX)
include(CheckFunctionExists)
include(CheckSymbolExists)
# This is needed by the GLX function checks below
set(CMAKE_REQUIRED_LIBRARIES ${glfw_LIBRARIES})
# Check for XRandR (modern resolution switching extension)
if (X11_Xrandr_FOUND)
set(_GLFW_HAS_XRANDR 1)
@ -115,6 +112,8 @@ if (_GLFW_X11_GLX)
set(GLFW_PKGLIBS "${GLFW_PKGLIBS} m")
endif()
set(CMAKE_REQUIRED_LIBRARIES ${OPENGL_gl_LIBRARY})
check_function_exists(glXGetProcAddress _GLFW_HAS_GLXGETPROCADDRESS)
if (NOT _GLFW_HAS_GLXGETPROCADDRESS)
@ -129,6 +128,26 @@ if (_GLFW_X11_GLX)
NOT _GLFW_HAS_GLXGETPROCADDRESSARB AND
NOT _GLFW_HAS_GLXGETPROCADDRESSEXT)
message(WARNING "No glXGetProcAddressXXX variant found")
# Check for dlopen support as a fallback
find_library(DL_LIBRARY dl)
if (DL_LIBRARY)
set(CMAKE_REQUIRED_LIBRARIES ${DL_LIBRARY})
else()
set(CMAKE_REQUIRED_LIBRARIES "")
endif()
check_function_exists(dlopen _GLFW_HAS_DLOPEN)
if (NOT _GLFW_HAS_DLOPEN)
message(FATAL_ERROR "No entry point retrieval mechanism found")
endif()
if (DL_LIBRARY)
list(APPEND glfw_LIBRARIES ${DL_LIBRARY})
set(GLFW_PKGLIBS "${GLFW_PKGLIBS} dl")
endif()
endif()
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")