third patch. I now export the elm_main symbol in test.c and it seems to
work
so the patch should be good enough to be pushed in svn
raster ?
Vincent
new patch: i forgot to update elementary.pc.in
Vincent
On Sat, 17 Jan 2009, Vincent Torri wrote:
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)
@@ -31,30 +31,33 @@
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_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 @@
]
)
+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 @@
[
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 @@
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 @@
my_libs="-lm"
AC_SUBST(my_libs)
+AC_SUBST(requirement_elm)
AC_OUTPUT([
Makefile
@@ -174,6 +197,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/Makefile.am
===================================================================
--- src/bin/Makefile.am (révision 38614)
+++ src/bin/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
+
bin_PROGRAMS = elementary_test
elementary_test_SOURCES = test.c
Index: elementary.pc.in
===================================================================
--- elementary.pc.in (révision 38614)
+++ elementary.pc.in (copie de travail)
@@ -5,7 +5,7 @@
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@
------------------------------------------------------------------------------
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