Hey,
as i was on Windows today, i tried to port elementary on windows XP. The patch is attached.
Some remarks:1) i had to remove EAPI from elm_main in test.c. I don't understand why it should be visible...
2) I use the directdraw engine.3) there is a problem with shapes, as the shapes are not yet supported with that engine.
I don't apply it because of point 1). I'm waiting for raster's answer, now Anyway, the test works like a charm :) Vincent
Index: configure.in =================================================================== --- configure.in (révision 38614) +++ configure.in (copie de travail) @@ -37,24 +37,23 @@ 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) ;; 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" ;; *) ELM_UNIX_DEF="#define" @@ -78,6 +77,8 @@ 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 @@ -122,6 +123,16 @@ [have_elementary_wince="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" + ], + [have_elementary_win32="no"] +) + ELM_EDBUS_DEF="#undef" have_elementary_edbus="no" PKG_CHECK_MODULES([ELEMENTARY_EDBUS], @@ -174,6 +185,7 @@ 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:" Index: src/lib/elm_main.c =================================================================== --- src/lib/elm_main.c (révision 38614) +++ src/lib/elm_main.c (copie de travail) @@ -173,6 +173,10 @@ (!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_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_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 Index: src/lib/elm_priv.h =================================================================== --- src/lib/elm_priv.h (révision 38614) +++ src/lib/elm_priv.h (copie de travail) @@ -28,6 +28,7 @@ ELM_SOFTWARE_16_X11, ELM_XRENDER_X11, ELM_OPENGL_X11, + ELM_SOFTWARE_WIN32, ELM_SOFTWARE_16_WINCE } Elm_Engine; Index: src/lib/Makefile.am =================================================================== --- src/lib/Makefile.am (révision 38614) +++ src/lib/Makefile.am (copie de travail) @@ -10,9 +10,14 @@ @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 @@ 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@ Index: src/lib/elm_win.c =================================================================== --- src/lib/elm_win.c (révision 38614) +++ src/lib/elm_win.c (copie de travail) @@ -124,6 +124,9 @@ 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 @@ 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 @@ case ELM_SOFTWARE_16_X11: case ELM_XRENDER_X11: case ELM_OPENGL_X11: + case ELM_SOFTWARE_WIN32: default: break; } Index: src/bin/test.c =================================================================== --- src/bin/test.c (révision 38614) +++ src/bin/test.c (copie de travail) @@ -2032,7 +2032,7 @@ /* this is your elementary main function - it MUSt be called IMMEDIATELY * after elm_init() and MUSt be passed argc and argv, and MUST be called * elm_main and not be static - must be a visible symbol with EAPI infront */ -EAPI int +int elm_main(int argc, char **argv) { /* put ere any init specific to this app like parsing args etc. */ Index: src/bin/Makefile.am =================================================================== --- src/bin/Makefile.am (révision 38614) +++ src/bin/Makefile.am (copie de travail) @@ -10,6 +10,7 @@ @ELEMENTARY_CFLAGS@ \ @ELEMENTARY_X_CFLAGS@ \ @ELEMENTARY_FB_CFLAGS@ \ +...@elementary_win32_cflags@ \ @ELEMENTARY_WINCE_CFLAGS@ \ @ELEMENTARY_EDBUS_CFLAGS@
------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel