Win32: Fix ecore_evas engine search path

Engines are stored in a lib/ folder, while the main DLL files
are in the bin/ folder, so the engine would never be found.

A solution was to add the proper checkme file in the share
folder, but since this is necessary only for Windows, we
can simply use ../lib instead of using the full eina_prefix
detector.

Thanks vtorri for the review.
This commit is contained in:
Jean-Philippe Andre 2014-05-16 16:32:59 +09:00
parent c17ba23891
commit 83320ae105
2 changed files with 6 additions and 2 deletions

View File

@ -26,7 +26,9 @@ lib/ecore_evas/ecore_evas_util.c
lib_ecore_evas_libecore_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
-I$(top_srcdir)/src/modules/evas/engines/buffer \
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
-DPACKAGE_DATA_DIR=\"$(datadir)/ecore_evas\" \
-DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" \
@ECORE_EVAS_CFLAGS@
lib_ecore_evas_libecore_evas_la_LIBADD = @ECORE_EVAS_LIBS@

View File

@ -101,9 +101,11 @@ _ecore_evas_engine_init(void)
/* 1. libecore_evas.so/../ecore_evas/engines/ */
paths[0] = eina_module_symbol_path_get(_ecore_evas_engine_init, "/ecore_evas/engines");
/* 2. PREFIX/ecore_evas/engines/ */
#ifndef _MSC_VER
#ifndef _WIN32
/* 3. PREFIX/ecore_evas/engines/ */
paths[1] = strdup(PACKAGE_LIB_DIR "/ecore_evas/engines");
#else
paths[1] = eina_module_symbol_path_get(_ecore_evas_engine_init, "/../lib/ecore_evas/engines");
#endif
for (j = 0; j < ((sizeof (paths) / sizeof (char*)) - 1); ++j)