Split shared object for IMEngine from libscim.so 79/240379/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Thu, 6 Aug 2020 02:29:20 +0000 (11:29 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 6 Aug 2020 02:29:49 +0000 (11:29 +0900)
Change-Id: I529e308dafffae223283577e3712a9b0bef3d5e9
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
engine-loader/Makefile.am
isf.pc.in
ism/demos/Makefile.am
ism/extras/efl_panel/Makefile.am
ism/extras/efl_panel/isf_panel_efl.cpp
ism/src/Makefile.am
ism/src/tizen_profile.cpp
ism/src/tizen_profile.h
packaging/isf.spec
scim.pc.in

index 55f6fae..9b92f9f 100644 (file)
@@ -28,23 +28,7 @@ bin_PROGRAMS          = $(ISE_ENGINE_LOADER)
 
 ise_engine_loader_SOURCES  = src/engine_loader.cpp \
                              src/engine_loader_main.cpp \
-                             src/engine_loader_dbus.cpp \
-                             ../ism/src/scim_imengine.cpp \
-                             ../ism/src/scim_imengine_module.cpp \
-                             ../ism/src/scim_signals.cpp \
-                             ../ism/src/scim_slot.cpp \
-                             ../ism/src/scim_connection.cpp \
-                             ../ism/src/scim_transaction.cpp \
-                             ../ism/src/scim_object.cpp \
-                             ../ism/src/scim_lookup_table.cpp \
-                             ../ism/src/scim_config_base.cpp \
-                             ../ism/src/scim_config_module.cpp \
-                             ../ism/src/scim_global_config.cpp \
-                             ../ism/src/scim_debug.cpp \
-                             ../ism/src/scim_module.cpp \
-                             ../ism/src/scim_utility.cpp \
-                             ../ism/src/scim_socket.cpp \
-                             ../ism/src/isf_query_utility.cpp
+                             src/engine_loader_dbus.cpp
 
 ise_engine_loader_CXXFLAGS = @GLIB_CFLAGS@ \
                         @GIO_CFLAGS@ \
@@ -59,4 +43,4 @@ ise_engine_loader_LDFLAGS  = @LTLIBINTL@ -rpath $(libdir) \
                         @SQLITE3_LIBS@ \
                         -pie
 
-ise_engine_loader_LDADD    = $(top_builddir)/ism/src/libltdlc.la
+ise_engine_loader_LDADD    = $(top_builddir)/ism/src/libltdlc.la $(top_builddir)/ism/src/libscim_imengine.la
index 9778aab..b82926a 100644 (file)
--- a/isf.pc.in
+++ b/isf.pc.in
@@ -10,6 +10,6 @@ sysconfdir=@sysconfdir@
 Name: ISF
 Description: Input Service Framework
 Version: @ISF_VERSION@
-Requires: 
-Libs: -L${libdir} -lscim@SCIM_EPOCH@
+Requires:
+Libs: -L${libdir} -lscim_imengine -lscim@SCIM_EPOCH@ -lisf-control
 Cflags: -I${includedir}/scim@SCIM_EPOCH@
index aa0bedc..82f8d83 100644 (file)
@@ -61,4 +61,5 @@ isf_demo_efl_LDFLAGS  = @LTLIBINTL@ -rpath $(libdir) \
                         -pie
 
 isf_demo_efl_LDADD    = $(top_builddir)/ism/src/libscim@SCIM_EPOCH@.la \
+                        $(top_builddir)/ism/src/libisf-control.la \
                         $(top_builddir)/ism/src/libprofile.la
index 2287b3f..e6dd20f 100644 (file)
@@ -57,6 +57,7 @@ isf_panel_efl_CXXFLAGS = @ECOREX_CFLAGS@ \
                          @PKGMGR_INFO_CFLAGS@ \
                          @PACKAGE_MANAGER_CFLAGS@ \
                          @AUL_CFLAGS@ \
+                         @SYSTEM_INFO_CFLAGS@ \
                          -fPIE
 
 isf_panel_efl_LDFLAGS  = @LTLIBINTL@ -rpath $(libdir) \
@@ -79,6 +80,7 @@ isf_panel_efl_LDFLAGS  = @LTLIBINTL@ -rpath $(libdir) \
                          @PKGMGR_INFO_LIBS@ \
                          @PACKAGE_MANAGER_LIBS@ \
                          @AUL_LIBS@ \
+                         @SYSTEM_INFO_LIBS@ \
                          -pie
 
 isf_panel_efl_LDADD    = $(top_builddir)/ism/src/libscim@SCIM_EPOCH@.la \
index 940ac1b..f6fc9da 100644 (file)
@@ -43,6 +43,7 @@
 #include <Ecore.h>
 #include <Ecore_File.h>
 #include <tzplatform_config.h>
+#include <system_info.h>
 
 #include "scim_private.h"
 #include "scim.h"
@@ -7657,6 +7658,17 @@ static Eina_Bool monitor_user_data_path_timer(void *data)
     return ECORE_CALLBACK_RENEW;
 }
 
+void set_tizen_profile()
+{
+    char *profile_name = NULL;
+    system_info_get_platform_string("http://tizen.org/feature/profile", &profile_name);
+    if (profile_name) {
+        LOGD("profile name : %s", profile_name);
+        isf_set_tizen_profile(profile_name);
+        free(profile_name);
+    }
+}
+
 int main (int argc, char *argv [])
 {
     struct tms    tiks_buf;
@@ -7911,6 +7923,8 @@ int main (int argc, char *argv [])
     _candidate_font_size = (int)(_candidate_font_size * (_width_rate < _height_rate ? _width_rate : _height_rate));
 #endif /* CANDIDATE */
 
+    set_tizen_profile();
+
     /* Load ISF configuration */
     user_data_path = scim_get_user_data_dir ();
     user_data_path_exists = ecore_file_exists (user_data_path.c_str ());
index 6acf40d..0113724 100644 (file)
@@ -16,7 +16,7 @@
 ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 MAINTAINERCLEANFILES   = Makefile.in scim_types.h
-CLEANFILES             = libltdlc.la libscim.la lib@ISF_CONTROL@.la *.bak
+CLEANFILES             = libltdlc.la libscim.la lib@ISF_CONTROL@.la libscim_imengine.la *.bak
 DISTCLEANFILES         = scim_types.h
 EXTRA_DIST             = libscim.version-script
 
@@ -113,8 +113,8 @@ libprivilege_checker_la_CXXFLAGS = @DLOG_CFLAGS@ @CYNARA_CFLAGS@
 libprivilege_checker_la_LIBADD = @DLOG_LIBS@ @CYNARA_LIBS@
 
 libprofile_la_SOURCES  = tizen_profile.cpp
-libprofile_la_CXXFLAGS = @SYSTEM_INFO_CFLAGS@
-libprofile_la_LIBADD   = @SYSTEM_INFO_LIBS@
+libprofile_la_CXXFLAGS =
+libprofile_la_LIBADD   =
 
 libisf_pkg_la_SOURCES  = isf_pkg.cpp
 libisf_pkg_la_CXXFLAGS = @DLOG_CFLAGS@ @PKGMGR_INFO_CFLAGS@ @TZPLATFORM_CONFIG_CFLAGS@
@@ -124,44 +124,72 @@ if SCIM_LD_VERSION_SCRIPT
 LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/libscim.version-script"
 endif
 
-lib_LTLIBRARIES        = libscim@SCIM_EPOCH@.la lib@ISF_CONTROL@.la
+lib_LTLIBRARIES        = libscim_imengine.la libscim@SCIM_EPOCH@.la lib@ISF_CONTROL@.la
+
+libscim_imengineincludedir = $(includedir)/scim_imengine
+
+libscim_imengineinclude_HEADERS = scim.h \
+              scim_config_base.h \
+              scim_config_module.h \
+              scim_config_path.h \
+              scim_imengine.h \
+              scim_imengine_module.h \
+              scim_module.h
+
+libscim_imengine_la_SOURCES = \
+              scim_imengine.cpp \
+              scim_imengine_module.cpp \
+              scim_signals.cpp \
+              scim_slot.cpp \
+              scim_connection.cpp \
+              scim_transaction.cpp \
+              scim_object.cpp \
+              scim_lookup_table.cpp \
+              scim_config_base.cpp \
+              scim_config_module.cpp \
+              scim_global_config.cpp \
+              scim_debug.cpp \
+              scim_module.cpp \
+              scim_utility.cpp \
+              scim_socket.cpp \
+              scim_event.cpp \
+              scim_setup_module_efl.cpp \
+              isf_query_utility.cpp
+
+libscim_imengine_la_CXXFLAGS = @EINA_CFLAGS@ \
+                          @DLOG_CFLAGS@ \
+                          @SQLITE3_CFLAGS@ \
+                          @SYSTEMD_CFLAGS@ \
+                          @EVAS_CFLAGS@
+
+libscim_imengine_la_LDFLAGS  = -version-info $(SCIM_CURRENT):$(SCIM_REVISION):$(SCIM_AGE) \
+                          -export-dynamic \
+                          -rpath $(libdir) \
+                          @EINA_LIBS@ \
+                          @DLOG_LIBS@ \
+                          @SQLITE3_LIBS@ \
+                          @SYSTEMD_LIBS@ \
+                          -lstdc++
+
+libscim_imengine_la_LIBADD   = libltdlc.la libprofile.la
 
 libscim@SCIM_EPOCH@_la_SOURCES = \
-                         scim_debug.cpp \
-                         scim_module.cpp \
                          scim_backend.cpp \
                          scim_chartraits.cpp \
                          scim_compose_key.cpp \
-                         scim_config_base.cpp \
-                         scim_config_module.cpp \
-                         scim_connection.cpp \
-                         scim_event.cpp \
                          scim_filter.cpp \
                          scim_filter_module.cpp \
                          scim_filter_manager.cpp \
                          scim_frontend.cpp \
                          scim_frontend_module.cpp \
-                         scim_global_config.cpp \
                          scim_helper.cpp \
                          scim_helper_manager.cpp \
                          scim_helper_module.cpp \
                          scim_hotkey.cpp \
                          scim_iconv.cpp \
-                         scim_imengine.cpp \
-                         scim_imengine_module.cpp \
-                         scim_lookup_table.cpp \
-                         scim_object.cpp \
                          scim_panel_client.cpp \
                          scim_private.cpp \
-                         scim_signals.cpp \
-                         scim_slot.cpp \
-                         scim_socket.cpp \
-                         scim_transaction.cpp \
-                         scim_utility.cpp \
-                         scim_setup_module_efl.cpp \
-                         isf_control.cpp \
                          isf_imcontrol_client.cpp \
-                         isf_query_utility.cpp \
                          isf_panel_agent_manager.cpp \
                          isf_info_manager.cpp \
                          isf_panel_agent_base.cpp \
@@ -170,15 +198,13 @@ libscim@SCIM_EPOCH@_la_SOURCES = \
                          isf_remote_client.cpp \
                          isf_pkg.cpp
 
-libscim@SCIM_EPOCH@_la_CXXFLAGS = @EVAS_CFLAGS@ \
-                         @EINA_CFLAGS@ \
+libscim@SCIM_EPOCH@_la_CXXFLAGS = @EINA_CFLAGS@ \
                          @ECORE_IMF_CFLAGS@ \
                          @ECORE_INPUT_CFLAGS@ \
                          @DLOG_CFLAGS@ \
                          @SQLITE3_CFLAGS@ \
                          @TZPLATFORM_CONFIG_CFLAGS@ \
                          @PKGMGR_INFO_CFLAGS@ \
-                         @VCONF_CFLAGS@ \
                          @GLIB_CFLAGS@ \
                          @SYSTEMD_CFLAGS@
 
@@ -195,41 +221,23 @@ libscim@SCIM_EPOCH@_la_LDFLAGS  = -version-info $(SCIM_CURRENT):$(SCIM_REVISION)
                          @SQLITE3_LIBS@ \
                          @TZPLATFORM_CONFIG_LIBS@ \
                          @PKGMGR_INFO_LIBS@ \
-                         @VCONF_LIBS@ \
                          @GLIB_LIBS@ \
                          @SYSTEMD_LIBS@ \
                          -lstdc++
 
-libscim@SCIM_EPOCH@_la_LIBADD  = libltdlc.la libprofile.la
+libscim@SCIM_EPOCH@_la_LIBADD  = libltdlc.la libprofile.la libscim_imengine.la
 
 libexecdir             = $(libdir)/scim@SCIM_EPOCH@
 libexec_PROGRAMS        = scim-helper-launcher
 
 scim_helper_launcher_SOURCES   = scim_helper_launcher.cpp
 scim_helper_launcher_CXXFLAGS  = -fstack-protector-strong -Wl,-z,relro -D_FORTIFY_SOURCE=2 -fPIE
-scim_helper_launcher_LDADD     = libscim@SCIM_EPOCH@.la
+scim_helper_launcher_LDADD     = libscim_imengine.la libscim@SCIM_EPOCH@.la
 scim_helper_launcher_LDFLAGS   = @LTLIBINTL@ -pie
 
 lib@ISF_CONTROL@includedir = $(includedir)/@ISF_CONTROL@
 
-lib@ISF_CONTROL@include_HEADERS = scim.h \
-              scim_attribute.h \
-              scim_bind.h \
-              scim_connection.h \
-              scim_debug.h \
-              scim_exception.h \
-              scim_global_config.h \
-              scim_object.h \
-              scim_pointer.h \
-              scim_property.h \
-              scim_signals.h \
-              scim_slot.h \
-              scim_socket.h \
-              scim_trans_commands.h \
-              scim_transaction.h \
-              scim_types.h \
-              scim_utility.h \
-              scim_visibility.h \
+lib@ISF_CONTROL@include_HEADERS = \
               isf_control.h \
               isf_imcontrol_client.h \
               tizen_profile.h
@@ -245,6 +253,7 @@ lib@ISF_CONTROL@_la_SOURCES = \
               scim_socket.cpp \
               scim_transaction.cpp \
               scim_utility.cpp \
+              scim_lookup_table.cpp \
               isf_control.cpp \
               isf_imcontrol_client.cpp
 
index 2ee3d30..6456bb5 100644 (file)
  *
  */
 
-#include <system_info.h>
 #include <stdlib.h>
 #include "tizen_profile.h"
 
+static tizen_profile_t g_profile = TIZEN_PROFILE_WEARABLE;
+
 /**
  * The current profile information will be passed as a return value
  */
 tizen_profile_t _get_tizen_profile()
 {
-    static tizen_profile_t profile = TIZEN_PROFILE_UNKNOWN;
-    if (__builtin_expect(profile != TIZEN_PROFILE_UNKNOWN, 1))
-        return profile;
+    return g_profile;
+}
 
-    char *profileName;
-    system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
-    switch (*profileName)
+void isf_set_tizen_profile(const char *profile_name)
+{
+    switch (*profile_name)
     {
         case 'm':
         case 'M':
-            profile = TIZEN_PROFILE_MOBILE;
+            g_profile = TIZEN_PROFILE_MOBILE;
             break;
         case 'w':
         case 'W':
-            profile = TIZEN_PROFILE_WEARABLE;
+            g_profile = TIZEN_PROFILE_WEARABLE;
             break;
         case 't':
         case 'T':
-            profile = TIZEN_PROFILE_TV;
+            g_profile = TIZEN_PROFILE_TV;
             break;
         case 'i':
         case 'I':
-            profile = TIZEN_PROFILE_IVI;
+            g_profile = TIZEN_PROFILE_IVI;
             break;
         default: // common or unknown ==> ALL ARE COMMON.
-            profile = TIZEN_PROFILE_COMMON;
+            g_profile = TIZEN_PROFILE_COMMON;
     }
-    free(profileName);
-
-    return profile;
 }
index 836e2ce..ea225ca 100644 (file)
@@ -38,6 +38,8 @@ typedef enum {
 extern "C" {
 #endif /* __cplusplus */
 
+void isf_set_tizen_profile(const char *profile_name);
+
 extern tizen_profile_t _get_tizen_profile();
 
 #define _TV (_get_tizen_profile() == TIZEN_PROFILE_TV)
index 2c45331..2b345c9 100644 (file)
@@ -162,6 +162,7 @@ cat scim.lang > isf.lang
 %{_libdir}/scim-1.0/scim-helper-launcher
 %{_libdir}/libscim-*.so.*
 %{_libdir}/libisf-control.so.*
+%{_libdir}/libscim_imengine.so.*
 %{TZ_SYS_RO_ETC}/package-manager/parserlib/category/libimeparser.so
 %license COPYING
 %{TZ_SYS_ETC}/dump.d/module.d/*
@@ -172,7 +173,9 @@ cat scim.lang > isf.lang
 %{_includedir}/scim-1.0/*
 %{_libdir}/libscim-*.so
 %{_includedir}/isf-control/*
+%{_includedir}/scim_imengine/*
 %{_libdir}/libisf-control.so
+%{_libdir}/libscim_imengine.so
 %{_libdir}/pkgconfig/isf.pc
 %{_libdir}/pkgconfig/scim.pc
 %{_libdir}/pkgconfig/isf-control.pc
index a9d5632..0b259ee 100644 (file)
@@ -16,5 +16,5 @@ Name: SCIM
 Description: Smart Common Input Method platform
 Version: @SCIM_VERSION@
 Requires: 
-Libs: -L${libdir} -lscim@SCIM_EPOCH@
+Libs: -L${libdir} -lscim@SCIM_EPOCH@ -lscim_imengine
 Cflags: -I${includedir}/scim@SCIM_EPOCH@