add Windows XP support
authorVincent Torri <vincent.torri@gmail.com>
Thu, 22 Jan 2009 21:43:07 +0000 (21:43 +0000)
committerVincent Torri <vincent.torri@gmail.com>
Thu, 22 Jan 2009 21:43:07 +0000 (21:43 +0000)
SVN revision: 38701

configure.in
elementary.pc.in
src/bin/Makefile.am
src/lib/Makefile.am
src/lib/elm_main.c
src/lib/elm_priv.h
src/lib/elm_win.c

index 47d7c2c..06c6c2c 100644 (file)
@@ -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:"
index 0564b12..5fe7c28 100644 (file)
@@ -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@
index 421e549..b307f74 100644 (file)
@@ -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
index 0998a7a..d80dc57 100644 (file)
@@ -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@
index ab6ddf3..3bf82a4 100644 (file)
@@ -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
index dbbb1d6..087fe80 100644 (file)
@@ -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;
 
index d355ec4..469df72 100644 (file)
@@ -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;
      }