From e9ec7d41b340655933e48b18c330286f4e7f253a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 5 Aug 2019 23:46:09 -0700 Subject: [PATCH] Fixed bug 4354 - CMake builds do not correctly enable IME on Linux Callum McGing While the CMake build checks for ibus and does enable the ibus backend with set(HAVE_IBUS_IBUS_H TRUE), this does not define SDL_USE_IME, thus CMake built SDL2 (as in Arch Linux) cannot use IME at all. The attached patch fixes this behaviour when building against ibus. IME support will still fail when only fcitx is available on the build system. --- CMakeLists.txt | 1 + configure | 2 +- configure.ac | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4ed5414f3929..14dc89c92f8e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1114,6 +1114,7 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID) set(HAVE_IBUS_IBUS_H TRUE) include_directories(${IBUS_INCLUDE_DIRS}) list(APPEND EXTRA_LIBS ${IBUS_LIBRARIES}) + add_definitions(-DSDL_USE_IME) endif() if(HAVE_LIBUNWIND_H) # We've already found the header, so REQUIRE the lib to be present diff --git a/configure b/configure index a4176dad93644..c56d09a010789 100755 --- a/configure +++ b/configure @@ -22731,7 +22731,7 @@ fi $as_echo "#define SDL_USE_IME 1" >>confdefs.h - SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c" + SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c" fi } diff --git a/configure.ac b/configure.ac index 1981702861036..63350e9c68544 100644 --- a/configure.ac +++ b/configure.ac @@ -2602,7 +2602,7 @@ AS_HELP_STRING([--enable-ime], [enable IME support [[default=yes]]]), , enable_ime=yes) if test x$enable_ime = xyes; then AC_DEFINE(SDL_USE_IME, 1, [ ]) - SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c" + SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c" fi }