diff --git a/legacy/elementary/configure.in b/legacy/elementary/configure.in index 47d7c2c867..06c6c2c7d0 100644 --- a/legacy/elementary/configure.in +++ b/legacy/elementary/configure.in @@ -31,30 +31,33 @@ SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'` version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN" AC_SUBST(version_info) +requirement_elm="" + PKG_PROG_PKG_CONFIG lt_enable_auto_import="" ELM_UNIX_DEF="#undef" ELM_WIN32_DEF="#undef" ELM_WINCE_DEF="#undef" +have_windows="no" case "$host_os" in - mingw32* | cegcc*) + mingw32ce* | cegcc*) PKG_CHECK_MODULES([EVIL], [evil]) AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.]) - dnl needed for correct definition of EAPI - AC_DEFINE(ELEMENTARY_BUILD, 1, [Define to mention that evas is built]) lt_enable_auto_import="-Wl,--enable-auto-import" ELM_WINCE_DEF="#define" + have_windows="yes" dnl managed by evil AC_DEFINE(HAVE_DLADDR) + requirement_elm="evil" ;; mingw*) PKG_CHECK_MODULES([EVIL], [evil]) AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if evil package is installed.]) - dnl needed for correct definition of EAPI - AC_DEFINE(ELEMENTARY_BUILD, 1, [Define to mention that evas is built]) lt_enable_auto_import="-Wl,--enable-auto-import" ELM_WIN32_DEF="#define" + have_windows="yes" + requirement_elm="evil" ;; *) ELM_UNIX_DEF="#define" @@ -78,6 +81,8 @@ AC_SUBST(ELM_UNIX_DEF) AC_SUBST(ELM_WIN32_DEF) AC_SUBST(ELM_WINCE_DEF) +AM_CONDITIONAL([ELEMENTARY_WINDOWS_BUILD], [test "x${have_windows}" = "xyes"]) + PKG_CHECK_MODULES([ELEMENTARY], [ eina-0 @@ -92,12 +97,15 @@ PKG_CHECK_MODULES([ELEMENTARY], ] ) +requirement_elm="edje ecore-file ecore-txt ecore-job ecore-evas ecore evas eet eina-0 ${requirement_elm}" + have_elementary_x="no" PKG_CHECK_MODULES([ELEMENTARY_X], [ecore-x], [ AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary]) have_elementary_x="yes" + requirement_elm="ecore-x ${requirement_elm}" ], [have_elementary_x="no"] ) @@ -108,16 +116,29 @@ PKG_CHECK_MODULES([ELEMENTARY_FB], [ AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary]) have_elementary_fb="yes" + requirement_elm="ecore-fb ${requirement_elm}" ], [have_elementary_fb="no"] ) +have_elementary_win32="no" +PKG_CHECK_MODULES([ELEMENTARY_WIN32], + [ecore-win32], + [ + AC_DEFINE(HAVE_ELEMENTARY_WIN32, 1, [Windows XP support for Elementary]) + have_elementary_win32="yes" + requirement_elm="ecore-win32 ${requirement_elm}" + ], + [have_elementary_win32="no"] +) + have_elementary_wince="no" PKG_CHECK_MODULES([ELEMENTARY_WINCE], [ecore-wince], [ AC_DEFINE(HAVE_ELEMENTARY_WINCE, 1, [Windows CE support for Elementary]) have_elementary_wince="yes" + requirement_elm="ecore-wince ${requirement_elm}" ], [have_elementary_wince="no"] ) @@ -133,6 +154,7 @@ PKG_CHECK_MODULES([ELEMENTARY_EDBUS], AC_DEFINE(HAVE_ELEMENTARY_EDBUS, 1, [EDBus support for Elementary]) have_elementary_edbus="yes" ELM_EDBUS_DEF="#define" + requirement_elm="ehal edbus ${requirement_elm}" ], [have_elementary_edbus="no"] ) @@ -144,6 +166,7 @@ AC_SUBST(ELM_ALLOCA_H_DEF) my_libs="-lm" AC_SUBST(my_libs) +AC_SUBST(requirement_elm) AC_OUTPUT([ Makefile @@ -174,6 +197,7 @@ echo echo "Engines:" echo " X11...........: ${have_elementary_x}" echo " Framebuffer...: ${have_elementary_fb}" +echo " Windows XP....: ${have_elementary_win32}" echo " Windows CE....: ${have_elementary_wince}" echo echo "Features:" diff --git a/legacy/elementary/elementary.pc.in b/legacy/elementary/elementary.pc.in index 0564b12e5a..5fe7c28cbd 100644 --- a/legacy/elementary/elementary.pc.in +++ b/legacy/elementary/elementary.pc.in @@ -5,7 +5,7 @@ includedir=@includedir@ Name: elementary Description: Mobile device touchscreen widget library -Requires: evas ecore ecore-x ecore-evas ecore-job ecore-txt ecore-file eet edje +Requires: @requirement_elm@ Version: @VERSION@ Libs: -L${libdir} -lelementary Libs.private: @dlopen_libs@ @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ diff --git a/legacy/elementary/src/bin/Makefile.am b/legacy/elementary/src/bin/Makefile.am index 421e5495a3..b307f74ba0 100644 --- a/legacy/elementary/src/bin/Makefile.am +++ b/legacy/elementary/src/bin/Makefile.am @@ -10,9 +10,14 @@ AM_CPPFLAGS = \ @ELEMENTARY_CFLAGS@ \ @ELEMENTARY_X_CFLAGS@ \ @ELEMENTARY_FB_CFLAGS@ \ +@ELEMENTARY_WIN32_CFLAGS@ \ @ELEMENTARY_WINCE_CFLAGS@ \ @ELEMENTARY_EDBUS_CFLAGS@ +if ELEMENTARY_WINDOWS_BUILD +AM_CPPFLAGS += -DELEMENTARY_BUILD +endif + bin_PROGRAMS = elementary_test elementary_test_SOURCES = test.c diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 0998a7a991..d80dc57684 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -10,9 +10,14 @@ AM_CPPFLAGS = \ @ELEMENTARY_CFLAGS@ \ @ELEMENTARY_X_CFLAGS@ \ @ELEMENTARY_FB_CFLAGS@ \ +@ELEMENTARY_WIN32_CFLAGS@ \ @ELEMENTARY_WINCE_CFLAGS@ \ @ELEMENTARY_EDBUS_CFLAGS@ +if ELEMENTARY_WINDOWS_BUILD +AM_CPPFLAGS += -DELEMENTARY_BUILD +endif + lib_LTLIBRARIES = libelementary.la include_HEADERS = Elementary.h @@ -61,5 +66,5 @@ els_icon.h libelementary_la_CFLAGS = -libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ +libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index ab6ddf340b..3bf82a4d3d 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -173,6 +173,10 @@ elm_init(int argc, char **argv) (!strcasecmp(elm_engine, "opengl-x11")) || (!strcasecmp(elm_engine, "opengl_x11"))) _elm_config->engine = ELM_OPENGL_X11; + else if ((!strcasecmp(elm_engine, "ddraw")) || + (!strcasecmp(elm_engine, "software-ddraw")) || + (!strcasecmp(elm_engine, "software_ddraw"))) + _elm_config->engine = ELM_SOFTWARE_WIN32; else if ((!strcasecmp(elm_engine, "wince-gdi")) || (!strcasecmp(elm_engine, "software-16-wince-gdi")) || (!strcasecmp(elm_engine, "software_16_wince_gdi"))) @@ -192,6 +196,7 @@ elm_init(int argc, char **argv) (_elm_config->engine == ELM_SOFTWARE_16_X11) || (_elm_config->engine == ELM_XRENDER_X11) || (_elm_config->engine == ELM_OPENGL_X11) || + (_elm_config->engine == ELM_SOFTWARE_WIN32) || (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) { #ifdef HAVE_ELEMENTARY_X @@ -255,6 +260,7 @@ elm_shutdown(void) (_elm_config->engine == ELM_SOFTWARE_16_X11) || (_elm_config->engine == ELM_XRENDER_X11) || (_elm_config->engine == ELM_OPENGL_X11) || + (_elm_config->engine == ELM_SOFTWARE_WIN32) || (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) { #ifdef HAVE_ELEMENTARY_X diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index dbbb1d6c53..087fe8092e 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -28,6 +28,7 @@ typedef enum _Elm_Engine ELM_SOFTWARE_16_X11, ELM_XRENDER_X11, ELM_OPENGL_X11, + ELM_SOFTWARE_WIN32, ELM_SOFTWARE_16_WINCE } Elm_Engine; diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index d355ec4243..469df72485 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -124,6 +124,9 @@ _elm_win_xwindow_get(Elm_Win *win) case ELM_OPENGL_X11: if (win->ee) win->xwin = ecore_evas_gl_x11_window_get(win->ee); break; + case ELM_SOFTWARE_WIN32: + if (win->ee) win->xwin = (int)ecore_evas_win32_window_get(win->ee); + break; default: break; } @@ -262,6 +265,9 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) case ELM_OPENGL_X11: win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1); break; + case ELM_SOFTWARE_WIN32: + win->ee = ecore_evas_software_ddraw_new(NULL, 0, 0, 1, 1); + break; case ELM_SOFTWARE_16_WINCE: win->ee = ecore_evas_software_wince_gdi_new(NULL, 0, 0, 1, 1); break; @@ -327,6 +333,7 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) case ELM_SOFTWARE_16_X11: case ELM_XRENDER_X11: case ELM_OPENGL_X11: + case ELM_SOFTWARE_WIN32: default: break; }