efl/emotion: fix usage of eina_prefix, add checkme file.

we were using "" for locale that made eina_prefix think that we did
not had a common prefix.

take the time and add a magic file "checkme" to be checked at runtime
to validate stuff.

also made the binaries be searched in MODULE_ARCH namespace.



SVN revision: 82507
This commit is contained in:
Gustavo Sverzut Barbieri 2013-01-10 05:45:50 +00:00
parent 83a8742d4e
commit 93ac29f610
3 changed files with 43 additions and 19 deletions

View File

@ -59,3 +59,10 @@ edje/vim/plugin-info.txt \
edje/vim/snippets/edc.snippets \
edje/vim/syntax/edc.vim \
edje/vim/syntax/embryo.vim
########################################################################
# Emotion
emotionfilesdir = $(datadir)/emotion
emotionfiles_DATA = emotion/checkme
EXTRA_DIST += $(emotionfiles_DATA)

2
data/emotion/checkme Normal file
View File

@ -0,0 +1,2 @@
This is just a test file used to help emotion determine its prefix
location.

View File

@ -21,10 +21,29 @@
static Eina_Prefix *pfx = NULL;
static int _emotion_generic_log_domain = -1;
#ifdef DBG
#undef DBG
#endif
#define DBG(...) EINA_LOG_DOM_DBG(_emotion_generic_log_domain, __VA_ARGS__)
#ifdef INF
#undef INF
#endif
#define INF(...) EINA_LOG_DOM_INFO(_emotion_generic_log_domain, __VA_ARGS__)
#ifdef WRN
#undef WRN
#endif
#define WRN(...) EINA_LOG_DOM_WARN(_emotion_generic_log_domain, __VA_ARGS__)
#ifdef ERR
#undef ERR
#endif
#define ERR(...) EINA_LOG_DOM_ERR(_emotion_generic_log_domain, __VA_ARGS__)
#ifdef CRITICAL
#undef CRITICAL
#endif
#define CRITICAL(...) EINA_LOG_DOM_CRIT(_emotion_generic_log_domain, __VA_ARGS__)
@ -83,7 +102,7 @@ _get_player(const char *name)
if (selected_name[0] == '/') cmd = selected_name;
else
{
snprintf(buf, sizeof(buf), "%s/emotion/utils/%s",
snprintf(buf, sizeof(buf), "%s/emotion/utils/" MODULE_ARCH "/%s",
libdir, selected_name);
cmd = buf;
}
@ -98,7 +117,7 @@ _get_player(const char *name)
for (i = 0; players[i].name; i++)
{
snprintf(buf, sizeof(buf), "%s/emotion/utils/%s",
snprintf(buf, sizeof(buf), "%s/emotion/utils/" MODULE_ARCH "/%s",
libdir, players[i].cmdline);
DBG("Try generic player '%s'", buf);
if (access(buf, R_OK | X_OK) == 0)
@ -1787,27 +1806,24 @@ static void module_close(Emotion_Video_Module *module EINA_UNUSED, void *video)
Eina_Bool
generic_module_init(void)
{
if (!pfx)
{
pfx = eina_prefix_new(NULL, emotion_object_add,
"EMOTION", "emotion", NULL,
PACKAGE_BIN_DIR,
PACKAGE_LIB_DIR,
PACKAGE_DATA_DIR,
"");
if (!pfx) return EINA_FALSE;
}
if (pfx) return EINA_TRUE;
pfx = eina_prefix_new(NULL, emotion_init,
"EMOTION", "emotion", "checkme",
PACKAGE_BIN_DIR, PACKAGE_LIB_DIR,
PACKAGE_DATA_DIR, PACKAGE_DATA_DIR);
if (!pfx) return EINA_FALSE;
return _emotion_module_register("generic", module_open, module_close);
}
static void
void
generic_module_shutdown(void)
{
if (pfx)
{
eina_prefix_free(pfx);
pfx = NULL;
}
if (!pfx) return;
eina_prefix_free(pfx);
pfx = NULL;
_emotion_module_unregister("generic");
}
@ -1817,4 +1833,3 @@ EINA_MODULE_INIT(generic_module_init);
EINA_MODULE_SHUTDOWN(generic_module_shutdown);
#endif