add compile flags
authorPeng Wu <alexepico@gmail.com>
Thu, 3 Nov 2011 05:19:12 +0000 (13:19 +0800)
committerPeng Wu <alexepico@gmail.com>
Thu, 22 Dec 2011 04:23:14 +0000 (12:23 +0800)
configure.ac
src/Makefile.am
src/PYConfig.cc
src/PYEngine.cc
src/PYMain.cc

index b37641a..02de9b7 100644 (file)
@@ -63,9 +63,20 @@ PKG_CHECK_MODULES(SQLITE, [
 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], [], [
@@ -226,6 +237,7 @@ Build options:
     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
index b2a2670..dd6c7a4 100644 (file)
@@ -64,14 +64,6 @@ ibus_engine_pinyin_c_sources = \
        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 \
@@ -124,6 +116,20 @@ ibus_engine_pinyin_h_sources = \
        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
@@ -172,6 +178,10 @@ ibus_engine_pinyin_CXXFLAGS += $(LIBUUID_CFLAGS)
 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@ \
index 9e539c8..47a7a7e 100644 (file)
@@ -23,7 +23,9 @@
 #include "PYTypes.h"
 #include "PYBus.h"
 #include "PYDoublePinyinTable.h"
+#ifdef IBUS_BUILD_LIBPINYIN
 #include "PYLibPinyin.h"
+#endif
 
 namespace PY {
 
@@ -339,10 +341,12 @@ Config::valueChangedCallback (IBusConfig  *config,
     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 {
index 27cc312..2563b9a 100644 (file)
@@ -166,6 +166,7 @@ ibus_pinyin_engine_constructor (GType                  type,
             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));
@@ -174,6 +175,7 @@ ibus_pinyin_engine_constructor (GType                  type,
             std::strcmp (name, "libbopomofo-debug") == 0 ) {
             engine->engine = new LibPinyinBopomofoEngine (IBUS_ENGINE (engine));
         }
+#endif
     } else {
         engine->engine = new PinyinEngine (IBUS_ENGINE (engine));
     }
index 4031582..49fd7ec 100644 (file)
@@ -30,7 +30,9 @@
 #include "PYBus.h"
 #include "PYConfig.h"
 #include "PYDatabase.h"
+#ifdef IBUS_BUILD_LIBPINYIN
 #include "PYLibPinyin.h"
+#endif
 
 using namespace PY;
 
@@ -87,7 +89,9 @@ start_component (void)
     }
 
     Database::init ();
+#ifdef IBUS_BUILD_LIBPINYIN
     LibPinyinBackEnd::init ();
+#endif
     PinyinConfig::init (bus);
     BopomofoConfig::init (bus);
 
@@ -124,6 +128,7 @@ start_component (void)
                                                      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)"),
@@ -146,22 +151,26 @@ start_component (void)
                                                      "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);
     }
 
@@ -180,7 +189,9 @@ sigterm_cb (int sig)
 static void
 atexit_cb (void)
 {
+#ifdef IBUS_BUILD_LIBPINYIN
     LibPinyinBackEnd::finalize ();
+#endif
     PY::Database::finalize ();
 }