Merge efreet_mime efreet_trash into efreet
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Sun, 10 May 2020 10:47:58 +0000 (12:47 +0200)
committerJongmin Lee <jm105.lee@samsung.com>
Tue, 26 May 2020 22:23:16 +0000 (07:23 +0900)
efreet_mime and efreet_trash are now included in libefreet.so. There are
compatible libs for libefreet_mime.so libefreet_trash.so, which simple
drag in libefreet.so. .pc files also are in place for compatibility.

efreet_init & shutdown now initializes and shutdowns trash and mime.
The old init functions now simply call efreet_init, efreet_init will
then init the trash or mime libs.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11807

src/lib/efreet/Efreet.h
src/lib/efreet/efreet.c
src/lib/efreet/efreet_mime.c
src/lib/efreet/efreet_private.h
src/lib/efreet/efreet_trash.c
src/lib/efreet/meson.build
src/lib/eio/meson.build
src/lib/elementary/meson.build
src/tests/efreet/meson.build

index 51fbfeb..af25e03 100644 (file)
@@ -167,6 +167,9 @@ EAPI void efreet_cache_disable(void);
  */
 EAPI void efreet_cache_enable(void);
 
+#include <Efreet_Mime.h>
+#include <Efreet_Trash.h>
+
 #undef EAPI
 #define EAPI
 
index 091899f..4c20b12 100644 (file)
@@ -94,6 +94,12 @@ efreet_init(void)
    if (!efreet_util_init())
      goto shutdown_efreet_menu;
 
+   if (!efreet_internal_mime_init())
+     goto shutdown_efreet_mime;
+
+   if (!efreet_internal_trash_init())
+     goto shutdown_efreet_trash;
+
 #ifdef ENABLE_NLS
    bindtextdomain(PACKAGE, LOCALE_DIR);
    bind_textdomain_codeset(PACKAGE, "UTF-8");
@@ -101,6 +107,10 @@ efreet_init(void)
 
    return _efreet_init_count;
 
+shutdown_efreet_trash:
+   efreet_internal_trash_shutdown();
+shutdown_efreet_mime:
+   efreet_internal_mime_shutdown();
 shutdown_efreet_menu:
    efreet_menu_shutdown();
 shutdown_efreet_desktop:
@@ -146,6 +156,8 @@ efreet_shutdown(void)
    efreet_xml_shutdown();
    efreet_cache_shutdown();
    efreet_base_shutdown();
+   efreet_internal_mime_shutdown();
+   efreet_internal_trash_shutdown();
 
    IF_RELEASE(efreet_lang);
    IF_RELEASE(efreet_lang_country);
index 9eba8c8..d94894f 100644 (file)
@@ -348,21 +348,12 @@ _efreet_mimedb_glob_mime_get(unsigned int num)
 
 /** --------------------------------- **/
 
-EAPI int
-efreet_mime_init(void)
+int
+efreet_internal_mime_init(void)
 {
    if (++_efreet_mime_init_count != 1)
      return _efreet_mime_init_count;
 
-   if (!ecore_init())
-     return --_efreet_mime_init_count;
-
-   if (!ecore_file_init())
-     goto shutdown_ecore;
-
-   if (!efreet_init())
-     goto shutdown_ecore_file;
-
    _efreet_mime_log_dom = eina_log_domain_register
       ("efreet_mime", EFREET_DEFAULT_LOG_COLOR);
 
@@ -388,17 +379,11 @@ unregister_log_domain:
    eina_log_domain_unregister(_efreet_mime_log_dom);
    _efreet_mime_log_dom = -1;
 shutdown_efreet:
-   efreet_shutdown();
-shutdown_ecore_file:
-   ecore_file_shutdown();
-shutdown_ecore:
-   ecore_shutdown();
-
    return --_efreet_mime_init_count;
-}
+ }
 
-EAPI int
-efreet_mime_shutdown(void)
+int
+efreet_internal_mime_shutdown(void)
 {
    if (_efreet_mime_init_count == 0)
      {
@@ -428,13 +413,22 @@ efreet_mime_shutdown(void)
    IF_FREE_HASH(mime_icons);
    eina_log_domain_unregister(_efreet_mime_log_dom);
    _efreet_mime_log_dom = -1;
-   efreet_shutdown();
-   ecore_file_shutdown();
-   ecore_shutdown();
 
    return _efreet_mime_init_count;
 }
 
+EAPI int
+efreet_mime_init(void)
+{
+   return efreet_init();
+}
+
+EAPI int
+efreet_mime_shutdown(void)
+{
+   return efreet_shutdown();
+}
+
 EAPI const char *
 efreet_mime_type_get(const char *file)
 {
index eb42c28..77a74df 100644 (file)
 
 /**
  * macros that are used all around the code for message processing
- * four macros are defined ERR, WRN, DGB, INF. 
+ * four macros are defined ERR, WRN, DGB, INF.
  * EFREET_MODULE_LOG_DOM should be defined individually for each module
  */
 #ifdef CRI
@@ -214,6 +214,12 @@ void efreet_desktop_shutdown(void);
 int efreet_util_init(void);
 int efreet_util_shutdown(void);
 
+int efreet_internal_mime_init(void);
+int efreet_internal_mime_shutdown(void);
+
+int efreet_internal_trash_init(void);
+int efreet_internal_trash_shutdown(void);
+
 const char *efreet_home_dir_get(void);
 void        efreet_dirs_reset(void);
 
index 04a4a6c..f3837ca 100644 (file)
@@ -32,28 +32,25 @@ static const char *efreet_trash_dir = NULL;
 # define getuid() GetCurrentProcessId()
 #endif
 
-EAPI int
-efreet_trash_init(void)
+
+int
+efreet_internal_trash_init(void)
 {
     if (++_efreet_trash_init_count != 1)
         return _efreet_trash_init_count;
 
-    if (!eina_init())
-        return --_efreet_trash_init_count;
-
     _efreet_trash_log_dom = eina_log_domain_register
       ("efreet_trash", EFREET_DEFAULT_LOG_COLOR);
     if (_efreet_trash_log_dom < 0)
     {
         EINA_LOG_ERR("Efreet: Could not create a log domain for efreet_trash");
-        eina_shutdown();
         return --_efreet_trash_init_count;
     }
     return _efreet_trash_init_count;
 }
 
-EAPI int
-efreet_trash_shutdown(void)
+int
+efreet_internal_trash_shutdown(void)
 {
     if (--_efreet_trash_init_count != 0)
         return _efreet_trash_init_count;
@@ -61,11 +58,22 @@ efreet_trash_shutdown(void)
     IF_RELEASE(efreet_trash_dir);
     eina_log_domain_unregister(_efreet_trash_log_dom);
     _efreet_trash_log_dom = -1;
-    eina_shutdown();
 
     return _efreet_trash_init_count;
 }
 
+EAPI int
+efreet_trash_init(void)
+{
+   return efreet_init();
+}
+
+EAPI int
+efreet_trash_shutdown(void)
+{
+   return efreet_shutdown();
+}
+
 EAPI const char*
 efreet_trash_dir_get(const char *file)
 {
index f438b02..271eca0 100644 (file)
@@ -25,7 +25,9 @@ efreet_src = [
   'efreet_cache.c',
   'efreet_private.h',
   'efreet_xml.h',
-  'efreet_cache_private.h'
+  'efreet_cache_private.h',
+  'efreet_mime.c',
+  'efreet_trash.c'
 ]
 
 efreet_deps = [eet, ecore, ecore_con, ecore_file, eo, efl, eina, emile, ecore_ipc, buildsystem,intl]
@@ -46,50 +48,39 @@ efreet = declare_dependency(
   dependencies: efreet_pub_deps,
 )
 
-efreet_mime_lib = library('efreet_mime',
-    'efreet_mime.c',
-    dependencies: efreet_pub_deps + [m, efreet, efreet_deps],
-    include_directories : config_dir + [include_directories('.')],
-    install: true,
-    c_args : package_c_args,
-    version : meson.project_version()
+install_headers(efreet_header_src,
+  install_dir : dir_package_include,
 )
 
 
-efreet_mime = declare_dependency(
-  include_directories: [include_directories('.')],
-  link_with: efreet_mime_lib,
-  dependencies: efreet_pub_deps
-)
+#Deprecated efreet libs
+# everything and everyone should use efreet itself, efreet_mime and efreet_trash are contained in libefreet.so
+# libefreet_mime.so and libefreet_trash.so will just have NEEDED on libefreet.so so the symbols get caught in like that
 
-efreet_trash_lib = library('efreet_trash',
-    'efreet_trash.c',
-    dependencies: efreet_pub_deps + [efreet, efreet_deps],
+deprecated_efreet_mime_lib = library('efreet_mime',
+    dependencies: [efreet],
     include_directories : config_dir + [include_directories('.')],
     install: true,
-    c_args : package_c_args,
     version : meson.project_version()
 )
 
-efreet_trash = declare_dependency(
-  include_directories: [include_directories('.')],
-  link_with: efreet_trash_lib,
-  dependencies: efreet_pub_deps,
-)
-
-install_headers(efreet_header_src,
-  install_dir : dir_package_include,
+deprecated_efreet_trash_lib = library('efreet_trash',
+    dependencies: efreet,
+    include_directories : config_dir + [include_directories('.')],
+    install: true,
+    version : meson.project_version()
 )
-
-pkgconfig.generate(efreet_mime_lib,
+pkgconfig.generate(efreet_lib,
         name : 'efreet-mime',
+        description : 'Deprecated, please just use efreet',
         subdirs : package_version_name,
         version : version_major + '.' + version_minor + '.' + version_micro,
         libraries : efreet_pub_deps,
 )
 
-pkgconfig.generate(efreet_trash_lib,
+pkgconfig.generate(efreet_lib,
         name : 'efreet-trash',
+        description : 'Deprecated, please just use efreet',
         subdirs : package_version_name,
         version : version_major + '.' + version_minor + '.' + version_micro,
         libraries : efreet_pub_deps,
index f95a1e6..64f33a2 100644 (file)
@@ -63,7 +63,7 @@ elif sys_bsd == true
   eio_src += ['eio_monitor_kevent.c']
 endif
 
-eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet_mime]
+eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet]
 eio_pub_deps = [eina, eet]
 
 eio_lib = library('eio',
index f5d58c2..671c728 100644 (file)
@@ -1053,9 +1053,9 @@ endforeach
 elementary_src_tizen = elementary_src_tizen_tmp
 #TIZEN_ONLY-->
 
-elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl]
+elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, eio, atspi, dl, intl]
 elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con,
-                       edje, eldbus, efreet, efreet_mime, efreet_trash, ethumb_client, efl]
+                       edje, eldbus, efreet, ethumb_client, efl]
 
 
 #FIXME this dependancy looks weired
index 4ce9156..2436452 100644 (file)
@@ -31,7 +31,7 @@ efreet_test_src = [
   'main.c'
 ]
 
-efreet_test_deps = [check, efreet, ecore, ecore_file, efreet_mime, intl]
+efreet_test_deps = [check, efreet, ecore, ecore_file, intl]
 
 efreet_test = executable('efreet_test',
   efreet_test_src,