use eina_prefix for module finding as well as generic util bins... and

fix to proviude data file to prefix finding works right with debina
multiarch.



SVN revision: 74710
This commit is contained in:
Carsten Haitzler 2012-08-01 06:29:26 +00:00
parent 7150d2f266
commit debbdfe022
4 changed files with 24 additions and 4 deletions

View File

@ -1945,6 +1945,7 @@ src/static_deps/liblinebreak/Makefile
src/lib/include/Makefile src/lib/include/Makefile
src/examples/Makefile src/examples/Makefile
src/tests/Makefile src/tests/Makefile
data/Makefile
evas.spec evas.spec
]) ])

View File

@ -0,0 +1,6 @@
MAINTAINERCLEANFILES = Makefile.in
filesdir = $(datadir)/evas
files_DATA = checkme
EXTRA_DIST = $(files_DATA)

2
legacy/evas/data/checkme Normal file
View File

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

View File

@ -42,7 +42,7 @@ _evas_module_append(Eina_List *list, char *path)
void void
evas_module_paths_init(void) evas_module_paths_init(void)
{ {
char *path; char *libdir, *path;
/* 1. ~/.evas/modules/ */ /* 1. ~/.evas/modules/ */
path = eina_module_environment_path_get("HOME", "/.evas/modules"); path = eina_module_environment_path_get("HOME", "/.evas/modules");
@ -56,13 +56,24 @@ evas_module_paths_init(void)
evas_module_paths = _evas_module_append(evas_module_paths, path); evas_module_paths = _evas_module_append(evas_module_paths, path);
/* 3. libevas.so/../evas/modules/ */ /* 3. libevas.so/../evas/modules/ */
path = eina_module_symbol_path_get(evas_module_paths_init, "/evas/modules"); libdir = (char *)_evas_module_libdir_get();
if (!libdir)
path = eina_module_symbol_path_get(evas_module_paths_init, "/evas/modules");
else
{
path = malloc(strlen(libdir) + strlen("/evas/modules") + 1);
if (path)
{
strcpy(path, libdir);
strcat(path, "/evas/modules");
}
}
if (eina_list_search_unsorted(evas_module_paths, (Eina_Compare_Cb) strcmp, path)) if (eina_list_search_unsorted(evas_module_paths, (Eina_Compare_Cb) strcmp, path))
free(path); free(path);
else else
evas_module_paths = _evas_module_append(evas_module_paths, path); evas_module_paths = _evas_module_append(evas_module_paths, path);
/* 4. PREFIX/evas/modules/ */ /* 4. PREFIX/lib/evas/modules/ */
#ifndef _MSC_VER #ifndef _MSC_VER
path = PACKAGE_LIB_DIR "/evas/modules"; path = PACKAGE_LIB_DIR "/evas/modules";
if (!eina_list_search_unsorted(evas_module_paths, (Eina_Compare_Cb) strcmp, path)) if (!eina_list_search_unsorted(evas_module_paths, (Eina_Compare_Cb) strcmp, path))
@ -616,7 +627,7 @@ EAPI const char *
_evas_module_libdir_get(void) _evas_module_libdir_get(void)
{ {
if (!pfx) pfx = eina_prefix_new if (!pfx) pfx = eina_prefix_new
(NULL, _evas_module_libdir_get, "EVAS", "evas", NULL, (NULL, _evas_module_libdir_get, "EVAS", "evas", "checkme",
PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR);
if (!pfx) return NULL; if (!pfx) return NULL;
return eina_prefix_lib_get(pfx); return eina_prefix_lib_get(pfx);