summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChoe Hwanjin <choe.hwanjin@gmail.com>2016-03-28 12:40:16 +0900
committerChoe Hwanjin <choe.hwanjin@gmail.com>2016-03-28 12:40:16 +0900
commit48b19bdc1d0646fd9831326e97653da190cba203 (patch)
tree40395951024a26c08a7ef71fab93d50328070380
parent0a0278d898514a35b801fb8ef77de2df8e02df58 (diff)
downloadlibhangul-48b19bdc1d0646fd9831326e97653da190cba203.tar.gz
configure 옵션 추가: --disable-external-keyboards
External keyboards 로딩 기능 사용 여부를 configure에서 설정할 수 있게 한다. libhangul을 외부 파일 없이 binary만 가지고 사용하고자 할때 이 옵션을 사용하면 좋을 것이다.
-rw-r--r--configure.ac19
-rw-r--r--hangul/hangulkeyboard.c6
2 files changed, 23 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 19f4999..e527084 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,6 +7,14 @@ AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([hangul/hangul.h])
AC_CONFIG_HEADER([config.h])
+# Configure options
+AC_ARG_ENABLE(external-keyboards,
+ AS_HELP_STRING([--enable-external-keyboards],
+ [enable external keyboard xml file loading feature]),
+ [enable_external_keyboards=$enableval],
+ [enable_external_keyboards=yes]
+)
+
# library version
LIBHANGUL_CURRENT=1
LIBHANGUL_REVISION=0
@@ -52,9 +60,14 @@ AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", gettext package name)
AM_ICONV
-# Checks for expat
+# Checks for pkgconfig
PKG_PROG_PKG_CONFIG
-PKG_CHECK_MODULES(EXPAT, [expat])
+
+# Checks for expat
+if test x$enable_external_keyboards = xyes; then
+ PKG_CHECK_MODULES(EXPAT, [expat])
+ AC_DEFINE(ENABLE_EXTERNAL_KEYBOARDS, 1, [Define to 1 if you enabled to load external keyboards])
+fi
# Checks for unit test framework
if test -n "$PKG_CONFIG"; then
@@ -75,3 +88,5 @@ tools/Makefile
])
AC_OUTPUT
+
+# vim: et
diff --git a/hangul/hangulkeyboard.c b/hangul/hangulkeyboard.c
index 81e6c07..9ebaca6 100644
--- a/hangul/hangulkeyboard.c
+++ b/hangul/hangulkeyboard.c
@@ -24,10 +24,12 @@
#include <string.h>
#include <limits.h>
+#if ENABLE_EXTERNAL_KEYBOARDS
#include <locale.h>
#include <glob.h>
#include <libgen.h>
#include <expat.h>
+#endif /* ENABLE_EXTERNAL_KEYBOARDS */
#include "hangul-gettext.h"
#include "hangul.h"
@@ -538,6 +540,7 @@ hangul_keyboard_combine(const HangulKeyboard* keyboard,
return res;
}
+#if ENABLE_EXTERNAL_KEYBOARDS
static const char*
attr_lookup(const char** attr, const char* name)
{
@@ -782,6 +785,7 @@ hangul_keyboard_list_load_dir(const char* path)
return hangul_keyboards.n;
}
+#endif /* ENABLE_EXTERNAL_KEYBOARDS */
static void
hangul_keyboard_list_clear()
@@ -801,6 +805,7 @@ hangul_keyboard_list_clear()
int
hangul_keyboard_list_init()
{
+#if ENABLE_EXTERNAL_KEYBOARDS
/* 이 함수를 중복 호출할 경우에 대한 처리
* 이미 등록된 자판이 있다면 중복 호출된 것으로 보고
* 함수를 종료한다. */
@@ -832,6 +837,7 @@ hangul_keyboard_list_init()
if (n == 0)
return 1;
+#endif /* ENABLE_EXTERNAL_KEYBOARDS */
return 0;
}