Fixes #2271, Add KD detection under CMake by Scott Percival
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b8ceaa..1d15fb2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -651,6 +651,17 @@ if(UNIX AND NOT APPLE)
#endif
int main(int argc, char** argv) {}" HAVE_INPUT_EVENTS)
+ check_c_source_compiles("
+ #include <linux/kd.h>
+ #include <linux/keyboard.h>
+
+ int main(int argc, char **argv)
+ {
+ struct kbentry kbe;
+ kbe.kb_table = KG_CTRL;
+ ioctl(0, KDGKBENT, &kbe);
+ }" HAVE_INPUT_KD)
+
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/linux/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
@@ -665,6 +676,10 @@ if(UNIX AND NOT APPLE)
set(HAVE_SDL_HAPTIC TRUE)
endif(SDL_HAPTIC AND HAVE_INPUT_EVENTS)
+ if(HAVE_INPUT_KD)
+ set(SDL_INPUT_LINUXKD 1)
+ endif(HAVE_INPUT_KD)
+
check_include_file("libudev.h" HAVE_LIBUDEV_H)
# !!! FIXME: this needs pkg-config to find the include path, I think.
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index c69a5aa..27e5f73 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -215,6 +215,7 @@
/* Enable various input drivers */
#cmakedefine SDL_INPUT_LINUXEV @SDL_INPUT_LINUXEV@
+#cmakedefine SDL_INPUT_LINUXKD @SDL_INPUT_LINUXKD@
#cmakedefine SDL_INPUT_TSLIB @SDL_INPUT_TSLIB@
#cmakedefine SDL_JOYSTICK_HAIKU @SDL_JOYSTICK_HAIKU@
#cmakedefine SDL_JOYSTICK_DINPUT @SDL_JOYSTICK_DINPUT@