AC_PATH_PROG(SQLITE3, sqlite3)
# check libpinyin
+# --disable-libpinyin
+AC_ARG_ENABLE(libpinyin,
+ AS_HELP_STRING([--disable-libpinyin],
+ [do not use libpinyin]),
+ [enable_libpinyin=$enableval],
+ [enable_libpinyin=yes]
+)
+
PKG_CHECK_MODULES(LIBPINYIN, [
libpinyin >= 0.2.0
-])
+], [],
+[enable_libpinyin=no])
+
+AM_CONDITIONAL(IBUS_BUILD_LIBPINYIN, [test x"$enable_libpinyin" = x"yes"])
# check uuid
AC_CHECK_FUNCS([uuid_create], [], [
Install prefix $prefix
Use boost $enable_boost
Use opencc $enable_opencc
+ Use libpinyin $enable_libpinyin
Build database android $enable_db_android
Build database open-phrase $enable_db_open_phrase
Build lua extension $enable_lua_extension
PYDynamicSpecialPhrase.cc \
PYSpecialPhrase.cc \
PYSpecialPhraseTable.cc \
- PYLibPinyin.cc \
- PYPPhoneticEditor.cc \
- PYPPinyinEditor.cc \
- PYPFullPinyinEditor.cc \
- PYPDoublePinyinEditor.cc \
- PYPBopomofoEditor.cc \
- PYPPinyinEngine.cc \
- PYPBopomofoEngine.cc \
$(NULL)
ibus_engine_pinyin_h_sources = \
PYBopomofo.h \
PYPBopomofoEngine.h \
$(NULL)
+if IBUS_BUILD_LIBPINYIN
+ibus_engine_pinyin_c_sources += \
+ PYLibPinyin.cc \
+ PYPPhoneticEditor.cc \
+ PYPPinyinEditor.cc \
+ PYPFullPinyinEditor.cc \
+ PYPDoublePinyinEditor.cc \
+ PYPBopomofoEditor.cc \
+ PYPPinyinEngine.cc \
+ PYPBopomofoEngine.cc \
+ $(NULL)
+endif
+
+
if IBUS_BUILD_LUA_EXTENSION
ibus_engine_pinyin_c_sources += PYExtEditor.cc
endif
ibus_engine_pinyin_LDADD += $(LIBUUID_LIBS)
endif
+if IBUS_BUILD_LIBPINYIN
+ ibus_engine_pinyin_CXXFLAGS += -DIBUS_BUILD_LIBPINYIN
+endif
+
if IBUS_BUILD_LUA_EXTENSION
ibus_engine_pinyin_CXXFLAGS += \
@LUA_CFLAGS@ \
#include "PYTypes.h"
#include "PYBus.h"
#include "PYDoublePinyinTable.h"
+#ifdef IBUS_BUILD_LIBPINYIN
#include "PYLibPinyin.h"
+#endif
namespace PY {
self->valueChanged (section, name, value);
if (self->m_section != section)
return;
+#ifdef IBUS_BUILD_LIBPINYIN
if (self->m_section == "engine/Pinyin")
LibPinyinBackEnd::instance ().setPinyinOptions (self);
if (self->m_section == "engine/Bopomofo")
LibPinyinBackEnd::instance ().setChewingOptions (self);
+#endif
}
static const struct {
std::strcmp (name, "bopomofo-debug") == 0) {
engine->engine = new BopomofoEngine (IBUS_ENGINE (engine));
}
+#ifdef IBUS_BUILD_LIBPINYIN
if (std::strcmp (name, "libpinyin") == 0 ||
std::strcmp (name, "libpinyin-debug") == 0) {
engine->engine = new LibPinyinPinyinEngine (IBUS_ENGINE (engine));
std::strcmp (name, "libbopomofo-debug") == 0 ) {
engine->engine = new LibPinyinBopomofoEngine (IBUS_ENGINE (engine));
}
+#endif
} else {
engine->engine = new PinyinEngine (IBUS_ENGINE (engine));
}
#include "PYBus.h"
#include "PYConfig.h"
#include "PYDatabase.h"
+#ifdef IBUS_BUILD_LIBPINYIN
#include "PYLibPinyin.h"
+#endif
using namespace PY;
}
Database::init ();
+#ifdef IBUS_BUILD_LIBPINYIN
LibPinyinBackEnd::init ();
+#endif
PinyinConfig::init (bus);
BopomofoConfig::init (bus);
PKGDATADIR "/icons/ibus-bopomofo.svg",
"us"));
+#ifdef IBUS_BUILD_LIBPINYIN
ibus_component_add_engine (component,
ibus_engine_desc_new ("libpinyin-debug",
N_("Intelligent Pinyin (debug)"),
"Peng Huang <shawn.p.huang@gmail.com>",
PKGDATADIR "/icons/ibus-bopomofo.svg",
"us"));
-
+#endif
factory = ibus_factory_new (ibus_bus_get_connection (bus));
if (ibus) {
ibus_factory_add_engine (factory, "pinyin", IBUS_TYPE_PINYIN_ENGINE);
ibus_factory_add_engine (factory, "bopomofo", IBUS_TYPE_PINYIN_ENGINE);
+#ifdef IBUS_BUILD_LIBPINYIN
ibus_factory_add_engine (factory, "libpinyin", IBUS_TYPE_PINYIN_ENGINE);
ibus_factory_add_engine (factory, "libbopomofo", IBUS_TYPE_PINYIN_ENGINE);
+#endif
ibus_bus_request_name (bus, "org.freedesktop.IBus.Pinyin", 0);
}
else {
ibus_factory_add_engine (factory, "pinyin-debug", IBUS_TYPE_PINYIN_ENGINE);
ibus_factory_add_engine (factory, "bopomofo-debug", IBUS_TYPE_PINYIN_ENGINE);
+#ifdef IBUS_BUILD_LIBPINYIN
ibus_factory_add_engine (factory, "libpinyin-debug", IBUS_TYPE_PINYIN_ENGINE);
ibus_factory_add_engine (factory, "libbopomofo-debug", IBUS_TYPE_PINYIN_ENGINE);
+#endif
ibus_bus_register_component (bus, component);
}
static void
atexit_cb (void)
{
+#ifdef IBUS_BUILD_LIBPINYIN
LibPinyinBackEnd::finalize ();
+#endif
PY::Database::finalize ();
}