summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRyan C. Gordon <icculus@icculus.org>2015-03-20 10:35:42 -0400
committerRyan C. Gordon <icculus@icculus.org>2015-03-20 10:35:42 -0400
commit37e61e50da9fe05650d452ee649f9a87a13d4014 (patch)
tree6dd0c285d326eaa028487a17fb444e917d98d05c /cmake
parent216811d1bd57479f52a2d98583a3f071d50f65e9 (diff)
downloadsdl-37e61e50da9fe05650d452ee649f9a87a13d4014.tar.gz
CMake project files no longer force you to link against Wayland or Mir libs.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/sdlchecks.cmake53
1 files changed, 48 insertions, 5 deletions
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index e8d746f96..e568dea89 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -505,8 +505,13 @@ macro(CheckX11)
endif()
endmacro()
+# Requires:
+# - EGL
+# - PkgCheckModules
+# Optional:
+# - MIR_SHARED opt
+# - HAVE_DLOPEN opt
macro(CheckMir)
-# !!! FIXME: hook up dynamic loading here.
if(VIDEO_MIR)
find_library(MIR_LIB mirclient mircommon egl)
pkg_check_modules(MIR_TOOLKIT mirclient mircommon)
@@ -522,15 +527,31 @@ macro(CheckMir)
set(SDL_VIDEO_DRIVER_MIR 1)
list(APPEND EXTRA_CFLAGS ${MIR_TOOLKIT_CFLAGS} ${EGL_CLFAGS} ${XKB_CLFLAGS})
- list(APPEND EXTRA_LDFLAGS ${MIR_TOOLKIT_LDFLAGS} ${EGL_LDLAGS} ${XKB_LDLAGS})
- endif (MIR_LIB AND MIR_TOOLKIT_FOUND AND EGL_FOUND AND XKB_FOUND)
+
+ if(MIR_SHARED)
+ if(NOT HAVE_DLOPEN)
+ message_warn("You must have SDL_LoadObject() support for dynamic Mir loading")
+ else()
+ FindLibraryAndSONAME(mirclient)
+ FindLibraryAndSONAME(xkbcommon)
+ set(SDL_VIDEO_DRIVER_MIR_DYNAMIC "\"${MIRCLIENT_LIB_SONAME}\"")
+ set(SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON "\"${XKBCOMMON_LIB_SONAME}\"")
+ set(HAVE_MIR_SHARED TRUE)
+ endif()
+ else()
+ set(EXTRA_LIBS ${MIR_TOOLKIT_LIBRARIES} ${EXTRA_LIBS})
+ endif()
+ endif()
endif()
endmacro()
# Requires:
# - EGL
+# - PkgCheckModules
+# Optional:
+# - WAYLAND_SHARED opt
+# - HAVE_DLOPEN opt
macro(CheckWayland)
-# !!! FIXME: hook up dynamic loading here.
if(VIDEO_WAYLAND)
pkg_check_modules(WAYLAND wayland-client wayland-cursor wayland-egl egl xkbcommon)
if(WAYLAND_FOUND)
@@ -540,12 +561,34 @@ macro(CheckWayland)
include_directories(
${WAYLAND_INCLUDE_DIRS}
)
- set(EXTRA_LIBS ${WAYLAND_LIBRARIES} ${EXTRA_LIBS})
set(HAVE_VIDEO_WAYLAND TRUE)
set(HAVE_SDL_VIDEO TRUE)
file(GLOB WAYLAND_SOURCES ${SDL2_SOURCE_DIR}/src/video/wayland/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${WAYLAND_SOURCES})
+
+ if(VIDEO_WAYLAND_QT_TOUCH)
+ set(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH 1)
+ endif()
+
+ if(WAYLAND_SHARED)
+ if(NOT HAVE_DLOPEN)
+ message_warn("You must have SDL_LoadObject() support for dynamic Wayland loading")
+ else()
+ FindLibraryAndSONAME(wayland-client)
+ FindLibraryAndSONAME(wayland-egl)
+ FindLibraryAndSONAME(wayland-cursor)
+ FindLibraryAndSONAME(xkbcommon)
+ set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC "\"${WAYLAND_CLIENT_LIB_SONAME}\"")
+ set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL "\"${WAYLAND_EGL_LIB_SONAME}\"")
+ set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR "\"${WAYLAND_CURSOR_LIB_SONAME}\"")
+ set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON "\"${XKBCOMMON_LIB_SONAME}\"")
+ set(HAVE_WAYLAND_SHARED TRUE)
+ endif()
+ else()
+ set(EXTRA_LIBS ${WAYLAND_LIBRARIES} ${EXTRA_LIBS})
+ endif()
+
set(SDL_VIDEO_DRIVER_WAYLAND 1)
endif()
endif()