From 3ec1101652a9fedbfa40a29bcfe4842b1c86051e Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sun, 10 May 2020 12:47:58 +0200 Subject: [PATCH] Merge efreet_mime efreet_trash into efreet 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 Differential Revision: https://phab.enlightenment.org/D11807 --- src/lib/efreet/Efreet.h | 3 ++ src/lib/efreet/efreet.c | 12 +++++++ src/lib/efreet/efreet_mime.c | 40 ++++++++++------------ src/lib/efreet/efreet_private.h | 8 ++++- src/lib/efreet/efreet_trash.c | 26 ++++++++++----- src/lib/efreet/meson.build | 59 ++++++++++++++------------------- src/lib/eio/meson.build | 2 +- src/lib/elementary/meson.build | 4 +-- src/tests/efreet/meson.build | 2 +- 9 files changed, 85 insertions(+), 71 deletions(-) diff --git a/src/lib/efreet/Efreet.h b/src/lib/efreet/Efreet.h index 51fbfebf6f..af25e033fa 100644 --- a/src/lib/efreet/Efreet.h +++ b/src/lib/efreet/Efreet.h @@ -167,6 +167,9 @@ EAPI void efreet_cache_disable(void); */ EAPI void efreet_cache_enable(void); +#include +#include + #undef EAPI #define EAPI diff --git a/src/lib/efreet/efreet.c b/src/lib/efreet/efreet.c index 091899f2b2..4c20b12bc1 100644 --- a/src/lib/efreet/efreet.c +++ b/src/lib/efreet/efreet.c @@ -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); diff --git a/src/lib/efreet/efreet_mime.c b/src/lib/efreet/efreet_mime.c index 9eba8c8db9..d94894ff71 100644 --- a/src/lib/efreet/efreet_mime.c +++ b/src/lib/efreet/efreet_mime.c @@ -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) { diff --git a/src/lib/efreet/efreet_private.h b/src/lib/efreet/efreet_private.h index eb42c28f74..77a74dfca1 100644 --- a/src/lib/efreet/efreet_private.h +++ b/src/lib/efreet/efreet_private.h @@ -114,7 +114,7 @@ /** * 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); diff --git a/src/lib/efreet/efreet_trash.c b/src/lib/efreet/efreet_trash.c index 04a4a6cda4..f3837caf47 100644 --- a/src/lib/efreet/efreet_trash.c +++ b/src/lib/efreet/efreet_trash.c @@ -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) { diff --git a/src/lib/efreet/meson.build b/src/lib/efreet/meson.build index f438b02845..271eca0b1a 100644 --- a/src/lib/efreet/meson.build +++ b/src/lib/efreet/meson.build @@ -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() -) - - -efreet_mime = declare_dependency( - include_directories: [include_directories('.')], - link_with: efreet_mime_lib, - dependencies: efreet_pub_deps -) - -efreet_trash_lib = library('efreet_trash', - 'efreet_trash.c', - dependencies: efreet_pub_deps + [efreet, efreet_deps], - 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, ) -pkgconfig.generate(efreet_mime_lib, + +#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 + +deprecated_efreet_mime_lib = library('efreet_mime', + dependencies: [efreet], + include_directories : config_dir + [include_directories('.')], + install: true, + version : meson.project_version() +) + +deprecated_efreet_trash_lib = library('efreet_trash', + dependencies: efreet, + include_directories : config_dir + [include_directories('.')], + install: true, + version : meson.project_version() +) +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, diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build index f95a1e652c..64f33a2430 100644 --- a/src/lib/eio/meson.build +++ b/src/lib/eio/meson.build @@ -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', diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index f2e7ed96fb..fb4431d3f7 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -949,9 +949,9 @@ elementary_src = [ 'efl_ui_spotlight_animation_manager.c', ] -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] elm_options = configuration_data() diff --git a/src/tests/efreet/meson.build b/src/tests/efreet/meson.build index 4ce9156ec9..24364523f5 100644 --- a/src/tests/efreet/meson.build +++ b/src/tests/efreet/meson.build @@ -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,