From dd7fd87acc5d1698138dfc9cd0e2b2049a6c9e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Taylor=20Ienczak=20Zanette?= Date: Wed, 16 Sep 2020 12:44:34 -0300 Subject: efreet: make efreet optional Summary: Not everyone has a system or libraries that need to conform with Freedesktop standards, making efreet not necessary on them. This patch solves this by making efreet an optional library. Test Plan: `meson test -C build` + run edje, evas and elementary examples to see if nothing got weird. Ref T8814 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8814 Differential Revision: https://phab.enlightenment.org/D12151 --- meson.build | 6 ++--- meson_options.txt | 6 +++++ src/bin/edje/edje_cc.c | 2 ++ src/bin/edje/meson.build | 6 ++++- src/bin/elementary/config.c | 17 +++++++++++- src/lib/edje/edje_cache.c | 9 ++++++- src/lib/edje/edje_main.c | 15 ++++++++++- src/lib/edje/edje_private.h | 4 ++- src/lib/edje/meson.build | 6 ++++- src/lib/efl/Efl_Config.h.in | 1 + src/lib/eio/efl_io_model.c | 6 ++++- src/lib/eio/eio_main.c | 8 +++++- src/lib/eio/meson.build | 5 +++- src/lib/elementary/Elementary.h | 8 +++--- src/lib/elementary/efl_ui_image.c | 4 +++ src/lib/elementary/efl_ui_image_zoomable.c | 4 +++ src/lib/elementary/efl_ui_win.c | 2 ++ src/lib/elementary/elm_code_file.c | 2 ++ src/lib/elementary/elm_icon.c | 5 +++- src/lib/elementary/elm_main.c | 4 +++ src/lib/elementary/elm_map.c | 36 +++++++++++++++++++++---- src/lib/elementary/elm_prefs_data.c | 9 ++++++- src/lib/elementary/meson.build | 12 ++++++--- src/modules/ecore_evas/engines/x/ecore_evas_x.c | 6 ++++- src/modules/ecore_evas/engines/x/meson.build | 6 ++++- src/tests/edje/edje_suite.c | 6 ++++- src/tests/edje/meson.build | 7 ++++- src/tests/eio/eio_suite.c | 6 ++++- src/tests/eio/meson.build | 7 ++++- src/tests/elementary/suite_helpers.c | 2 ++ 30 files changed, 186 insertions(+), 31 deletions(-) diff --git a/meson.build b/meson.build index 267db9255e..3c678d902f 100644 --- a/meson.build +++ b/meson.build @@ -334,20 +334,20 @@ subprojects = [ ['ecore_drm2' ,['drm'] , false, true, false, false, false, false, true, ['ecore'], ['libdrm']], ['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, true, ['eina'], []], ['evas' ,[] , true, true, false, false, true, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']], - ['efreet' ,[] , false, true, false, false, true, false, true, ['eina', 'efl', 'eo'], []], + ['efreet' ,['efreet'] , false, true, false, false, true, false, true, ['eina', 'efl', 'eo'], []], ['ecore_input_evas' ,[] , false, true, false, false, false, false, true, ['eina', 'evas'], []], ['ecore_evas' ,[] , true, true, true, false, false, false, true, ['evas', 'ector'], []], ['ecore_imf' ,[] , true, true, false, false, false, false, true, ['eina'], []], ['embryo' ,[] , false, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], ['eio' ,[] , false, true, false, false, true, true, true, ['eina', 'eet'], []], - ['efreet' ,[] , false, false, true, false, false, false, true, ['eina', 'efl', 'eo'], []], + ['efreet' ,['efreet'] , false, false, true, false, false, false, true, ['eina', 'efl', 'eo'], []], ['ecore_imf_evas' ,[] , false, true, false, false, false, false, true, ['eina', 'efl', 'eo'], []], ['ephysics' ,['physics'] , false, true, false, false, false, false, true, ['eina', 'efl', 'eo'], []], ['edje' ,[] , false, true, true, false, true, true, true, ['evas', 'eo', 'efl', lua_pc_name], []], ['emotion' ,[] , true, true, false, false, true, true, true, ['eina', 'efl', 'eo'], []], ['ethumb' ,['ethumb'] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], ['ethumb_client' ,['ethumb'] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []], - ['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], + ['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'eio'], ['atspi']], ['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []], ['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', lua_pc_name], []], ['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []], diff --git a/meson_options.txt b/meson_options.txt index c2954e04d2..8dc8850f6d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -106,6 +106,12 @@ option('build-tests', description : 'Compile tests' ) +option('efreet', + type : 'boolean', + value : true, + description : 'Enable efreet library', +) + option('crypto', type : 'combo', choices : ['gnutls', 'openssl'], diff --git a/src/bin/edje/edje_cc.c b/src/bin/edje/edje_cc.c index dff3fd7a3e..b2f5eec64e 100644 --- a/src/bin/edje/edje_cc.c +++ b/src/bin/edje/edje_cc.c @@ -151,7 +151,9 @@ main(int argc, char **argv) setlocale(LC_NUMERIC, "C"); ecore_app_no_system_modules(); +#ifdef HAVE_EFREET efreet_cache_disable(); +#endif if (!eina_init()) return -1; diff --git a/src/bin/edje/meson.build b/src/bin/edje/meson.build index e715571852..2274913f57 100644 --- a/src/bin/edje/meson.build +++ b/src/bin/edje/meson.build @@ -5,11 +5,15 @@ edje_bin_deps = [ lua, eet, evas, ecore_file, ecore_input, ecore_imf, ecore_imf_evas, - embryo, efreet, eio, + embryo, eio, edje, ecore_evas, intl, ] +if get_option('efreet') + edje_bin_deps += efreet +endif + edje_cc_src = [ 'edje_multisense_convert.h', 'edje_cc.h', diff --git a/src/bin/elementary/config.c b/src/bin/elementary/config.c index ff05307700..e4a7382e88 100644 --- a/src/bin/elementary/config.c +++ b/src/bin/elementary/config.c @@ -1577,6 +1577,7 @@ _theme_sel(void *data EINA_UNUSED, printf("not implemented\n"); }*/ +#ifdef ELM_EFREET static void _icon_preview_icon_add(const char *icon, const char *theme) { @@ -1594,6 +1595,7 @@ _icon_preview_icon_add(const char *icon, const char *theme) if (strcmp(theme, ELM_CONFIG_ICON_THEME_ELEMENTARY)) elm_image_file_set(ic, efreet_icon_path_find(theme, icon, 48), NULL); } +#endif static void @@ -1611,8 +1613,10 @@ _icon_preview_update(Evas_Object *win) const char *theme = evas_object_data_get(win, "icon_theme"); elm_box_clear(icon_preview_frame); +#ifdef ELM_EFREET for (example_icon = example_icons; !!*example_icon; example_icon++) _icon_preview_icon_add(*example_icon, theme); +#endif } static void @@ -1672,15 +1676,18 @@ _icon_theme_sel(void *data, Evas_Object *obj, static Eina_Bool _icon_theme_valid(const char *theme) { - const char *icon_path; + const char *icon_path = NULL; +#ifdef ELM_EFREET icon_path = efreet_icon_path_find(theme, "folder", 48); +#endif return !!icon_path; } static int _icon_theme_list_sort(const void *data1, const void *data2) { +#ifdef ELM_EFREET const Efreet_Icon_Theme *t1, *t2; t1 = data1; @@ -1690,6 +1697,9 @@ _icon_theme_list_sort(const void *data1, const void *data2) if (!t2->name.name) return -1; return strcmp(t1->name.name, t2->name.name); +#else + return 0; +#endif } static void @@ -2391,7 +2401,9 @@ _status_config_icons(Evas_Object *win, { Evas_Object *tb, *rc, *sp, *ck, *li, *bx, *ic, *pd, *fr, *bt; Eina_List *list, *l; +#ifdef ELM_EFREET const Efreet_Icon_Theme *th; +#endif Elm_Object_Item *list_it, *def_it = NULL; tb = elm_table_add(win); @@ -2435,6 +2447,7 @@ _status_config_icons(Evas_Object *win, evas_object_data_set(win, "icon_theme", elm_config_icon_theme_get()); +#ifdef ELM_EFREET list = efreet_icon_theme_list_get(); list = eina_list_sort(list, eina_list_count(list), _icon_theme_list_sort); EINA_LIST_FOREACH(list, l, th) @@ -2452,6 +2465,8 @@ _status_config_icons(Evas_Object *win, if (!strcmp(elm_config_icon_theme_get(), th->name.internal)) elm_list_item_selected_set(list_it, EINA_TRUE); } +#endif + if (!elm_list_selected_items_get(li)) elm_list_item_selected_set(def_it, EINA_TRUE); diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c index 9cfa52729a..ce61f146fa 100644 --- a/src/lib/edje/edje_cache.c +++ b/src/lib/edje/edje_cache.c @@ -410,7 +410,14 @@ _edje_extract_mo_files(Edje_File *edf) unsigned int i; int len; - cache_path = efreet_cache_home_get(); + char cache_dir[30]; +#ifdef HAVE_EFREET + snprintf(cache_dir, 30, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, 30, "%s/.cache", eina_environment_home_get()); +#endif + + cache_path = cache_dir; t = eina_file_mtime_get(edf->f); sz = eina_file_size_get(edf->f); diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c index d87da24310..1380d1f43b 100644 --- a/src/lib/edje/edje_main.c +++ b/src/lib/edje/edje_main.c @@ -75,11 +75,13 @@ edje_init(void) goto shutdown_eet; } +#ifdef HAVE_EFREET if (!efreet_init()) { ERR("Efreet init failed"); goto shutdown_evas; } +#endif _edje_scale = FROM_DOUBLE(1.0); _edje_global_obj = efl_add(EDJE_GLOBAL_CLASS, efl_main_loop_get()); @@ -123,8 +125,15 @@ edje_init(void) _edje_language = eina_stringshare_add(getenv("LANGUAGE")); + char cache_dir[PATH_MAX]; +#ifdef HAVE_EFREET + snprintf(cache_dir, PATH_MAX, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, PATH_MAX, "%s/.cache", eina_environment_home_get()); +#endif + str = eina_strbuf_new(); - eina_strbuf_append_printf(str, "%s/edje", efreet_cache_home_get()); + eina_strbuf_append_printf(str, "%s/edje", cache_dir); _edje_cache_path = eina_stringshare_add(eina_strbuf_string_get(str)); eina_strbuf_free(str); @@ -161,8 +170,10 @@ shutdown_all: _edje_global_obj = NULL; } shutdown_efreet: +#ifdef HAVE_EFREET efreet_shutdown(); shutdown_evas: +#endif evas_shutdown(); shutdown_eet: eet_shutdown(); @@ -236,7 +247,9 @@ _edje_shutdown_core(void) _edje_ephysics_clear(); #endif +#ifdef HAVE_EFREET efreet_shutdown(); +#endif ecore_shutdown(); evas_shutdown(); eet_shutdown(); diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 453e3fd105..ec6a7c407b 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -53,7 +53,9 @@ # include #endif #include -#include +#ifdef HAVE_EFREET +# include +#endif #ifdef HAVE_EIO # include diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build index 6c812d6923..4f7ccce899 100644 --- a/src/lib/edje/meson.build +++ b/src/lib/edje/meson.build @@ -3,10 +3,14 @@ edje_deps = [ eet, evas, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_imf_evas, - embryo, efreet, eio, intl, + embryo, eio, intl, buildsystem ] +if get_option('efreet') + edje_deps += efreet +endif + edje_pub_deps = [evas, eo, efl] edje_ext_deps = [m, lua, buildsystem_simple] diff --git a/src/lib/efl/Efl_Config.h.in b/src/lib/efl/Efl_Config.h.in index 3f5937f1dd..2495c88b7d 100644 --- a/src/lib/efl/Efl_Config.h.in +++ b/src/lib/efl/Efl_Config.h.in @@ -15,5 +15,6 @@ #define EFL_BUILD_ID "@EFL_BUILD_ID@" #mesondefine HAVE_ETHUMB +#mesondefine HAVE_EFREET #endif diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c index 3da0e7a4bc..1a4949b1c5 100644 --- a/src/lib/eio/efl_io_model.c +++ b/src/lib/eio/efl_io_model.c @@ -10,7 +10,9 @@ #include #include #include -#include +#ifdef HAVE_EFREET +# include +#endif #include "Eio.h" @@ -478,7 +480,9 @@ _eio_build_mime_now(Eo *model, void *data, const Eina_Value v) return eina_future_as_value(efl_future_then(model, f)); } +#ifdef HAVE_EFREET pd->mime_type = efreet_mime_type_get(pd->path); +#endif efl_model_properties_changed(model, "mime_type"); delayed_one = EINA_TRUE; diff --git a/src/lib/eio/eio_main.c b/src/lib/eio/eio_main.c index b85e52b2c5..0c6076a254 100644 --- a/src/lib/eio/eio_main.c +++ b/src/lib/eio/eio_main.c @@ -16,7 +16,9 @@ * License along with this library; * if not, see . */ -#include +#ifdef HAVE_EFREET +# include +#endif #include "eio_private.h" /*============================================================================* @@ -317,7 +319,9 @@ eio_init(void) eio_monitor_init(); +#ifdef HAVE_EFREET efreet_mime_init(); +#endif io_manager = efl_add(EFL_IO_MANAGER_CLASS, efl_main_loop_get()); efl_provider_register(efl_main_loop_get(), EFL_IO_MANAGER_CLASS, io_manager); @@ -371,7 +375,9 @@ eio_shutdown(void) CRI("We couldn't terminate in less than 30s some pending IO. This can led to some crash."); } +#ifdef HAVE_EFREET efreet_mime_shutdown(); +#endif eio_monitor_shutdown(); diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build index 869f62b586..fdc9c1a4d7 100644 --- a/src/lib/eio/meson.build +++ b/src/lib/eio/meson.build @@ -64,7 +64,10 @@ elif sys_bsd == true eio_src += files(['eio_monitor_kevent.c']) endif -eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet] +eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile] +if get_option('efreet') + eio_deps += efreet +endif eio_pub_deps = [eina, eet] eio_ext_deps = [m] diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 0ce8fd8e35..bd365562fa 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -69,9 +69,11 @@ #include #include #include -#include -#include -#include +#ifdef HAVE_EFREET +# include +# include +# include +#endif #ifdef HAVE_ETHUMB #include #endif diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index 7ee3533e33..b7ae6b511e 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -2111,6 +2111,7 @@ _icon_standard_set(Evas_Object *obj, const char *name) return EINA_FALSE; } +#ifdef HAVE_EFREET static Eina_Bool _icon_freedesktop_set(Evas_Object *obj, const char *name, int size) { @@ -2158,6 +2159,7 @@ _icon_freedesktop_set(Evas_Object *obj, const char *name, int size) } return EINA_FALSE; } +#endif static inline int _icon_size_min_get(Evas_Object *image) @@ -2200,6 +2202,7 @@ _internal_efl_ui_image_icon_set(Evas_Object *obj, const char *name, Eina_Bool *f if (!strcmp(ELM_CONFIG_ICON_THEME_ELEMENTARY, elm_config_icon_theme_get())) { ret = _icon_standard_set(obj, name); +#ifdef HAVE_EFREET if (ret && fdo) *fdo = EINA_FALSE; if (!ret) { @@ -2211,6 +2214,7 @@ _internal_efl_ui_image_icon_set(Evas_Object *obj, const char *name, Eina_Bool *f { ret = _icon_freedesktop_set(obj, name, _icon_size_min_get(obj)); if (ret && fdo) *fdo = EINA_TRUE; +#endif } if (ret) diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index 299c9c39a9..79b9be0221 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -2815,6 +2815,7 @@ _icon_standard_set(Evas_Object *obj, const char *name, Eina_Bool resize) return EINA_FALSE; } +#ifdef HAVE_EFREET static Eina_Bool _icon_freedesktop_set(Evas_Object *obj, const char *name, int size) { @@ -2862,6 +2863,7 @@ _icon_freedesktop_set(Evas_Object *obj, const char *name, int size) } return EINA_FALSE; } +#endif static inline int _icon_size_min_get(Evas_Object *image) @@ -2905,6 +2907,7 @@ _internal_efl_ui_image_zoomable_icon_set(Evas_Object *obj, const char *name, Ein { ret = _icon_standard_set(obj, name, resize); if (ret && fdo) *fdo = EINA_FALSE; +#ifdef HAVE_EFREET if (!ret) { ret = _icon_freedesktop_set(obj, name, _icon_size_min_get(obj)); @@ -2915,6 +2918,7 @@ _internal_efl_ui_image_zoomable_icon_set(Evas_Object *obj, const char *name, Ein { ret = _icon_freedesktop_set(obj, name, _icon_size_min_get(obj)); if (ret && fdo) *fdo = EINA_TRUE; +#endif } if (ret) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index c28750115d..cf066d66eb 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -4676,6 +4676,7 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style) } if (((!sd->icon_name) || (!set)) && _elm_appname) { +#ifdef HAVE_EFREET Efreet_Desktop *d; d = efreet_util_desktop_exec_find(_elm_appname); if (d) @@ -4686,6 +4687,7 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style) efl_ui_image_icon_set(sd->icon, d->icon); efreet_desktop_free(d); } +#endif } efl_access_object_access_type_set(sd->icon, EFL_ACCESS_TYPE_DISABLED); } diff --git a/src/lib/elementary/elm_code_file.c b/src/lib/elementary/elm_code_file.c index f140ad6dd4..1ff424428e 100644 --- a/src/lib/elementary/elm_code_file.c +++ b/src/lib/elementary/elm_code_file.c @@ -132,7 +132,9 @@ ELM_API Elm_Code_File *elm_code_file_open(Elm_Code *code, const char *path) ret = elm_code_file_new(code); file = eina_file_open(path, EINA_FALSE); ret->file = file; +#ifdef HAVE_EFREET ret->mime = efreet_mime_type_get(path); +#endif lastindex = 1; ret->map = eina_file_map_all(file, EINA_FILE_POPULATE); diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c index 318692d546..005633b236 100644 --- a/src/lib/elementary/elm_icon.c +++ b/src/lib/elementary/elm_icon.c @@ -271,9 +271,9 @@ _icon_thumb_apply_cb(void *data, return ECORE_CALLBACK_RENEW; } - #endif +#ifdef HAVE_EFREET static Eina_Bool _icon_freedesktop_set(Evas_Object *obj, const char *theme, @@ -298,6 +298,7 @@ _icon_freedesktop_set(Evas_Object *obj, } return EINA_FALSE; } +#endif static void _edje_signal_callback(void *data, @@ -439,6 +440,7 @@ _internal_elm_icon_standard_set(Evas_Object *obj, if (!strcmp(ELM_CONFIG_ICON_THEME_ELEMENTARY, elm_config_icon_theme_get())) { ret = _icon_standard_set(obj, name); +#ifdef HAVE_EFREET if (ret && fdo) *fdo = EINA_FALSE; if (!ret) @@ -451,6 +453,7 @@ _internal_elm_icon_standard_set(Evas_Object *obj, { ret = _icon_freedesktop_set(obj, NULL, name, _icon_size_min_get(obj)); if (ret && fdo) *fdo = EINA_TRUE; +#endif } if (ret) diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index f22a205259..d4bd0f7b86 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -702,6 +702,7 @@ ELM_API Eina_Bool elm_need_efreet(void) { if (_elm_need_efreet) return EINA_TRUE; +#ifdef HAVE_EFREET if (!efreet_init()) return EINA_FALSE; if (!efreet_mime_init()) { @@ -729,6 +730,7 @@ elm_need_efreet(void) } } */ +#endif return EINA_TRUE; } @@ -737,9 +739,11 @@ _elm_unneed_efreet(void) { if (!_elm_need_efreet) return; _elm_need_efreet = EINA_FALSE; +#ifdef HAVE_EFREET efreet_trash_shutdown(); efreet_mime_shutdown(); efreet_shutdown(); +#endif } ELM_API void diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c index 8226b3dbe2..f7d7908b80 100644 --- a/src/lib/elementary/elm_map.c +++ b/src/lib/elementary/elm_map.c @@ -710,7 +710,14 @@ _grid_item_create(Grid *g, evas_object_pass_events_set(gi->img, EINA_TRUE); evas_object_stack_below(gi->img, g->wsd->sep_maps_overlays); - snprintf(buf, sizeof(buf), "%s" CACHE_TILE_ROOT, efreet_cache_home_get(), + char cache_dir[30]; +#ifdef HAVE_EFREET + snprintf(cache_dir, 30, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, 30, "%s/.cache", eina_environment_home_get()); +#endif + + snprintf(buf, sizeof(buf), "%s" CACHE_TILE_ROOT, cache_dir, g->wsd->id, g->zoom, x); snprintf(buf2, sizeof(buf2), CACHE_TILE_PATH, buf, y); @@ -3212,8 +3219,14 @@ _prepare_download() { char fname[PATH_MAX]; - snprintf(fname, sizeof(fname), "%s" CACHE_NAME_ROOT, - efreet_cache_home_get()); + char cache_dir[30]; +#ifdef HAVE_EFREET + snprintf(cache_dir, 30, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, 30, "%s/.cache", eina_environment_home_get()); +#endif + + snprintf(fname, sizeof(fname), "%s" CACHE_NAME_ROOT, cache_dir); if (!ecore_file_exists(fname)) ecore_file_mkpath(fname); return strdup(fname); } @@ -4256,7 +4269,14 @@ _elm_map_efl_canvas_group_group_del(Eo *obj, Elm_Map_Data *sd) { char buf[4096]; - snprintf(buf, sizeof(buf), "%s" CACHE_ROOT, efreet_cache_home_get()); + + char cache_dir[30]; +#ifdef HAVE_EFREET + snprintf(cache_dir, 30, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, 30, "%s/.cache", eina_environment_home_get()); +#endif + snprintf(buf, sizeof(buf), "%s" CACHE_ROOT, cache_dir); ecore_file_recursive_rm(buf); } @@ -4651,8 +4671,14 @@ _elm_map_route_add(Eo *obj, Elm_Map_Data *sd, Elm_Map_Route_Type type, Elm_Map_R EINA_SAFETY_ON_NULL_RETURN_VAL(sd->src_route, NULL); { + char cache_dir[30]; +#ifdef HAVE_EFREET + snprintf(cache_dir, 30, "%s", efreet_cache_home_get()); +#else + snprintf(cache_dir, 30, "%s/.cache", eina_environment_home_get()); +#endif snprintf(fname, sizeof(fname), "%s" CACHE_ROUTE_ROOT, - efreet_cache_home_get()); + cache_dir); if (!ecore_file_exists(fname)) ecore_file_mkpath(fname); } diff --git a/src/lib/elementary/elm_prefs_data.c b/src/lib/elementary/elm_prefs_data.c index 6e5e5b13db..436d9976c6 100644 --- a/src/lib/elementary/elm_prefs_data.c +++ b/src/lib/elementary/elm_prefs_data.c @@ -347,10 +347,17 @@ elm_prefs_data_new(const char *data_file, if (mode == EET_FILE_MODE_READ) prefs_data->autosave = EINA_FALSE; + char config_dir[30]; +#ifdef HAVE_EFREET + snprintf(config_dir, 30, "%s", efreet_config_home_get()); +#else + snprintf(config_dir, 30, "%s/.config", eina_environment_home_get()); +#endif + if (data_file) prefs_data->data_file = eina_stringshare_add(data_file); else prefs_data->data_file = eina_stringshare_printf - ("%s/%s", efreet_config_home_get(), _elm_appname); + ("%s/%s", config_dir, _elm_appname); prefs_data->key = eina_stringshare_add(key ? key : "main"); diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index e7b49877e6..94f1912c9e 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -952,9 +952,13 @@ elementary_src = files([ 'efl_ui_spotlight_animation_manager.c', ]) -elementary_deps = [emile, eo, efl, edje, emotion, ecore_imf, ecore_con, eldbus, efreet, eio, buildsystem] +elementary_deps = [emile, eo, efl, edje, emotion, ecore_imf, ecore_con, eldbus, eio, buildsystem] elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con, - edje, eldbus, efreet, efl] + edje, eldbus, efl] +if get_option('efreet') + elementary_deps += efreet + elementary_pub_deps += efreet +endif elementary_ext_deps = [atspi, dl, intl, buildsystem_simple] if get_option('ethumb') @@ -973,7 +977,9 @@ if sys_windows == false elm_options.set('ELM_UNIX', '1') endif -elm_options.set('ELM_EFREET', '1') +if get_option('efreet') + elm_options.set('ELM_EFREET', '1') +endif if config_h.has('HAVE_ALLOCA_H') elm_options.set('ELM_ALLOCA_H', '1') diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index c75af6368f..0030386bf6 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -13,7 +13,9 @@ #include #include -#include +#ifdef HAVE_EFREET +# include +#endif #ifdef BUILD_ECORE_EVAS_SOFTWARE_X11 # include @@ -3865,6 +3867,7 @@ _deliver_content(Ecore_Evas *ee, Ecore_Evas_Engine_Data_X11 *edata, Ecore_Evas_S EINA_SAFETY_ON_NULL_GOTO(ev->data, err); if (eina_streq(mime_type, "text/uri-list")) { +#ifdef HAVE_EFREET Ecore_X_Selection_Data_Files *files = ev->data; Efreet_Uri *uri; Eina_Strbuf *strbuf; @@ -3889,6 +3892,7 @@ _deliver_content(Ecore_Evas *ee, Ecore_Evas_Engine_Data_X11 *edata, Ecore_Evas_S } result = _create_delivery_content(eina_strbuf_length_get(strbuf) + 1, eina_strbuf_string_get(strbuf), mime_type); eina_strbuf_free(strbuf); +#endif } else if (eina_str_has_prefix(mime_type,"text")) { diff --git a/src/modules/ecore_evas/engines/x/meson.build b/src/modules/ecore_evas/engines/x/meson.build index 1108f9c755..b423047c35 100644 --- a/src/modules/ecore_evas/engines/x/meson.build +++ b/src/modules/ecore_evas/engines/x/meson.build @@ -12,9 +12,13 @@ if get_option('opengl') != 'none' engine_deps += [engine_gl_x11] endif +if get_option('efreet') + engine_deps += [efreet] +endif + shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir], - dependencies : [eina, ecore_evas, ecore_input_evas, efreet] + engine_deps, + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, install : true, install_dir : mod_install_dir, name_suffix : sys_mod_extension diff --git a/src/tests/edje/edje_suite.c b/src/tests/edje/edje_suite.c index 5439c72a57..4bde6daf6a 100644 --- a/src/tests/edje/edje_suite.c +++ b/src/tests/edje/edje_suite.c @@ -5,7 +5,9 @@ #include "edje_suite.h" #include "../efl_check.h" #include -#include +#ifdef HAVE_EFREET +# include +#endif #include static const Efl_Test_Case etc[] = { @@ -74,7 +76,9 @@ main(int argc, char **argv) putenv("EFL_RUN_IN_TREE=1"); #endif ecore_app_no_system_modules(); +#ifdef HAVE_EFREET efreet_cache_disable(); +#endif failed_count = _efl_suite_build_and_run(argc - 1, (const char **)argv + 1, "Edje", etc, SUITE_INIT_FN(edje), SUITE_SHUTDOWN_FN(edje)); diff --git a/src/tests/edje/meson.build b/src/tests/edje/meson.build index 668f1b0d35..f48763ec84 100644 --- a/src/tests/edje/meson.build +++ b/src/tests/edje/meson.build @@ -15,9 +15,14 @@ edje_suite_src = [ 'efl_test_layout3.c', ] +edje_test_deps = [] +if get_option('efreet') + edje_test_deps += efreet +endif + edje_suite = executable('edje_suite', edje_suite_src, themes, - dependencies: [check, eina, ecore_evas, edje, efreet], + dependencies: [check, eina, ecore_evas, edje] + edje_test_deps, include_directories : config_dir, c_args : [ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', diff --git a/src/tests/eio/eio_suite.c b/src/tests/eio/eio_suite.c index 59579f06d8..1d81cd8974 100644 --- a/src/tests/eio/eio_suite.c +++ b/src/tests/eio/eio_suite.c @@ -7,7 +7,9 @@ #include "eio_suite.h" #include "../efl_check.h" #include -#include +#ifdef HAVE_EFREET +# include +#endif EFL_START_TEST(eio_init_test) { @@ -52,7 +54,9 @@ main(int argc, char **argv) { int failed_count; +#ifdef HAVE_EFREET efreet_cache_disable(); +#endif if (!_efl_test_option_disp(argc, argv, etc)) return 0; diff --git a/src/tests/eio/meson.build b/src/tests/eio/meson.build index 4ae10236ee..7d901bee78 100644 --- a/src/tests/eio/meson.build +++ b/src/tests/eio/meson.build @@ -15,10 +15,15 @@ eio_suite_src = [ 'eio_suite.h' ] +eio_test_deps = [] +if get_option('efreet') + eio_test_deps += efreet +endif + eio_suite = executable('eio_suite', eio_suite_src, include_directories : [config_dir], - dependencies: [eo, ecore, eina, ecore_file, eio, check, efreet], + dependencies: [eo, ecore, eina, ecore_file, eio, check] + eio_test_deps, c_args : [ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index 62fe6deb77..ec01ec7b64 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c @@ -327,7 +327,9 @@ suite_setup(Eina_Bool legacy) main_pid = getpid(); ecore_app_no_system_modules(); +#ifdef HAVE_EFREET efreet_cache_disable(); +#endif if (legacy) failed_count = _efl_suite_build_and_run(0, NULL, -- cgit v1.2.1