]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxUSE_CONSOLE_EVENTLOOP and wxUSE_SELECT/EPOLLDISPATCHER guards;
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 14 Jul 2007 19:06:18 +0000 (19:06 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 14 Jul 2007 19:06:18 +0000 (19:06 +0000)
put checks for them in the new Unix-specific wx/unix/chkconf.h file

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

28 files changed:
Makefile.in
build/bakefiles/files.bkl
configure.in
include/wx/apptrait.h
include/wx/chkconf.h
include/wx/dfb/chkconf.h
include/wx/mac/setup0.h
include/wx/motif/setup0.h
include/wx/msw/setup0.h
include/wx/msw/wince/setup.h
include/wx/os2/setup0.h
include/wx/palmos/setup0.h
include/wx/private/selectdispatcher.h
include/wx/setup_inc.h
include/wx/unix/apptrait.h
include/wx/unix/chkconf.h [new file with mode: 0644]
include/wx/unix/evtloop.h
include/wx/unix/private/epolldispatcher.h
include/wx/x11/chkconf.h
setup.h.in
src/common/gsocketiohandler.cpp
src/common/selectdispatcher.cpp
src/unix/baseunix.cpp
src/unix/epolldispatcher.cpp
src/unix/evtloopunix.cpp
wxGTK.spec
wxMotif.spec
wxX11.spec

index 9e62270a56e77375e6bdc4c695b7ca04eba48f60..69c5596644f3012a02904be9dc25192c59fff2cd 100644 (file)
@@ -582,6 +582,7 @@ ALL_PORTS_BASE_HEADERS =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1844,6 +1845,7 @@ COND_TOOLKIT__BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1860,6 +1862,7 @@ COND_TOOLKIT_COCOA_BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1876,6 +1879,7 @@ COND_TOOLKIT_GTK_BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1896,6 +1900,7 @@ COND_TOOLKIT_MAC_BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/evtloop.h \
        wx/unix/stdpaths.h
 @COND_TOOLKIT_MAC@BASE_MACOSX_HDR = $(COND_TOOLKIT_MAC_BASE_MACOSX_HDR)
        wx/unix/evtloop.h \
        wx/unix/stdpaths.h
 @COND_TOOLKIT_MAC@BASE_MACOSX_HDR = $(COND_TOOLKIT_MAC_BASE_MACOSX_HDR)
@@ -1903,6 +1908,7 @@ COND_TOOLKIT_MOTIF_BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1919,6 +1925,7 @@ COND_TOOLKIT_X11_BASE_MACOSX_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
@@ -1946,6 +1953,7 @@ COND_PLATFORM_UNIX_1_BASE_PLATFORM_HDR =  \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
        wx/unix/app.h \
        wx/unix/apptbase.h \
        wx/unix/apptrait.h \
+       wx/unix/chkconf.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
        wx/unix/execute.h \
        wx/unix/evtloop.h \
        wx/unix/mimetype.h \
index f181fa2a01b41746a17e464e238357273540ed0c..0e5ecaa0a8fddb3e9eb3bb8a82aec3e15c504919 100644 (file)
@@ -76,6 +76,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
     wx/unix/app.h
     wx/unix/apptbase.h
     wx/unix/apptrait.h
     wx/unix/app.h
     wx/unix/apptbase.h
     wx/unix/apptrait.h
+    wx/unix/chkconf.h
     wx/unix/execute.h
     wx/unix/evtloop.h
     wx/unix/mimetype.h
     wx/unix/execute.h
     wx/unix/evtloop.h
     wx/unix/mimetype.h
@@ -224,6 +225,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
     wx/unix/app.h
     wx/unix/apptbase.h
     wx/unix/apptrait.h
     wx/unix/app.h
     wx/unix/apptbase.h
     wx/unix/apptrait.h
+    wx/unix/chkconf.h
     wx/unix/evtloop.h
     wx/unix/stdpaths.h
 </set>
     wx/unix/evtloop.h
     wx/unix/stdpaths.h
 </set>
index 0a5e8757b5d348c6feaf9588028307c1f0b91101..18d74811c43d33d6a86e3db618f039b0c5eac063 100644 (file)
@@ -433,7 +433,7 @@ dnl     - WX_ARG_WITHOUT/WX_ARG_DISABLE mirror WX_ARG_WITH/WX_ARG_ENABLE but
 dnl       should be used for the options which are enabled by default
 dnl     - WX_ARG_FEATURE is a version of WX_ARG_ENABLE which should be used for
 dnl       optional features, i.e. options which should be disabled if
 dnl       should be used for the options which are enabled by default
 dnl     - WX_ARG_FEATURE is a version of WX_ARG_ENABLE which should be used for
 dnl       optional features, i.e. options which should be disabled if
-dnl       --disable-all_features is specified (WX_ARG_WITH/WX_ARG_SYS_WITH are
+dnl       --disable-all-features is specified (WX_ARG_WITH/WX_ARG_SYS_WITH are
 dnl       also affected by this)
 
 dnl ---------------------------------------------------------------------------
 dnl       also affected by this)
 
 dnl ---------------------------------------------------------------------------
@@ -451,7 +451,7 @@ if test "x$VENDOR" = "x"; then
     VENDOR="custom"
 fi
 
     VENDOR="custom"
 fi
 
-WX_ARG_DISABLE(all_features,[  --disable-all_features  disable all optional features to build minimal library], wxUSE_ALL_FEATURES)
+WX_ARG_DISABLE(all-features,[  --disable-all-features  disable all optional features to build minimal library], wxUSE_ALL_FEATURES)
 
 dnl ---------------------------------------------------------------------------
 dnl port selection
 
 dnl ---------------------------------------------------------------------------
 dnl port selection
@@ -576,6 +576,10 @@ WX_ARG_FEATURE(dataobj,       [  --enable-dataobj        use data object classes
 
 WX_ARG_FEATURE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
 
 
 WX_ARG_FEATURE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
 
+WX_ARG_FEATURE(baseevtloop,   [  --enable-base-evtloop   use event loop in console programs too], wxUSE_CONSOLE_EVENTLOOP)
+WX_ARG_FEATURE(epoolloop,     [  --enable-epool-loop     use wxEpollDispatcher class (Linux only)], wxUSE_EPOLL_DISPATCHER)
+WX_ARG_FEATURE(selectloop,    [  --enable-select-loop    use wxSelectDispatcher class], wxUSE_SELECT_DISPATCHER)
+
 dnl please keep the settings below in alphabetical order
 WX_ARG_FEATURE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
 WX_ARG_FEATURE(arcstream,     [  --enable-arcstream      use wxArchive streams], wxUSE_ARCHIVE_STREAMS)
 dnl please keep the settings below in alphabetical order
 WX_ARG_FEATURE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
 WX_ARG_FEATURE(arcstream,     [  --enable-arcstream      use wxArchive streams], wxUSE_ARCHIVE_STREAMS)
@@ -1440,9 +1444,6 @@ if test "$USE_UNIX" = 1 ; then
     AC_CHECK_HEADER([sys/select.h],,, [AC_INCLUDES_DEFAULT()])
 fi
 
     AC_CHECK_HEADER([sys/select.h],,, [AC_INCLUDES_DEFAULT()])
 fi
 
-dnl defines HAVE_SYS_EPOLL_H - for epoll mainloop implementation in wxbase
-AC_CHECK_HEADERS(sys/epoll.h)
-
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl Checks for compiler characteristics
 dnl ---------------------------------------------------------------------------
@@ -5693,6 +5694,29 @@ if test "$wxUSE_OBJC_UNIQUIFYING" = "yes"; then
   AC_DEFINE(wxUSE_OBJC_UNIQUIFYING)
 fi
 
   AC_DEFINE(wxUSE_OBJC_UNIQUIFYING)
 fi
 
+dnl ---------------------------------------------------------------------------
+dnl console event loop stuff
+dnl ---------------------------------------------------------------------------
+
+if test "$wxUSE_CONSOLE_EVENTLOOP" = "yes"; then
+    AC_DEFINE(wxUSE_CONSOLE_EVENTLOOP)
+
+    if test "$wxUSE_UNIX" = "yes"; then
+        if test "$wxUSE_SELECT_DISPATCHER" = "yes"; then
+            AC_DEFINE(wxUSE_SELECT_DISPATCHER);
+        fi
+
+        if test "$wxUSE_EPOLL_DISPATCHER" = "yes"; then
+            AC_CHECK_HEADERS(sys/epoll.h)
+            if test "$ac_cv_header_sys_epoll_h" = "yes"; then
+                AC_DEFINE(wxUSE_EPOLL_DISPATCHER)
+            else
+                AC_MSG_WARN([sys/epoll.h not available, wxEpollDispatcher disabled])
+            fi
+        fi
+    fi
+fi
+
 dnl ---------------------------------------------------------------------------
 dnl time/date functions
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
 dnl time/date functions
 dnl ---------------------------------------------------------------------------
index aca979f67a9fb742c9ea7baacaa2b185c636234a..322b047c8eab49ebf57c0111715022baedbf6292 100644 (file)
@@ -205,6 +205,10 @@ protected:
 class WXDLLIMPEXP_BASE wxConsoleAppTraitsBase : public wxAppTraits
 {
 public:
 class WXDLLIMPEXP_BASE wxConsoleAppTraitsBase : public wxAppTraits
 {
 public:
+#if !wxUSE_CONSOLE_EVENTLOOP
+    virtual wxEventLoopBase *CreateEventLoop() { return NULL; }
+#endif // !wxUSE_CONSOLE_EVENTLOOP
+
 #if wxUSE_LOG
     virtual wxLog *CreateLogTarget();
 #endif // wxUSE_LOG
 #if wxUSE_LOG
     virtual wxLog *CreateLogTarget();
 #endif // wxUSE_LOG
index f05ad703d27ae81173d91de352e25fa8d06b83e6..ca9699d0113ab84cc6e1a62571e7219d1f10f84c 100644 (file)
 #  include "wx/x11/chkconf.h"
 #endif
 
 #  include "wx/x11/chkconf.h"
 #endif
 
+#ifdef __UNIX__
+#   include "wx/unix/chkconf.h"
+#endif
+
 #ifdef __WXUNIVERSAL__
 #   include "wx/univ/chkconf.h"
 #endif
 #ifdef __WXUNIVERSAL__
 #   include "wx/univ/chkconf.h"
 #endif
    please keep the options in alphabetical order!
  */
 
    please keep the options in alphabetical order!
  */
 
+#ifndef wxUSE_CONSOLE_EVENTLOOP
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_CONSOLE_EVENTLOOP must be defined."
+#   else
+#       define wxUSE_CONSOLE_EVENTLOOP 0
+#   endif
+#endif /* !defined(wxUSE_CONSOLE_EVENTLOOP) */
+
 #ifndef wxUSE_CRASHREPORT
     /* this one is special: as currently it is Windows-only, don't force it
        to be defined on other platforms */
 #ifndef wxUSE_CRASHREPORT
     /* this one is special: as currently it is Windows-only, don't force it
        to be defined on other platforms */
index 290fb622202e351fcc099a6e032d984c6755f1b8..cbc9e7f331e3c03e7ef8e72386e3feb56927b6f1 100644 (file)
 #   error "wxFileConfig is required by wxDFB port"
 #endif
 
 #   error "wxFileConfig is required by wxDFB port"
 #endif
 
+#if wxUSE_SOCKETS && !wxUSE_SELECT_DISPATCHER
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxSocket requires wxSelectDispatcher in wxDFB"
+#   else
+#       undef wxUSE_SELECT_DISPATCHER
+#       define wxUSE_SELECT_DISPATCHER 1
+#   endif
+#endif
+
 #endif /* _WX_DFB_CHKCONF_H_ */
 #endif /* _WX_DFB_CHKCONF_H_ */
index 4fb97a63851169abbf6d7d0bb0c87e96ef966c02..2b55bba682a33e93e508024cbeaedc7d7fd7115a 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index c7aafa9c34837c3c9afb4f73a721ce7ea8b722f9..4f643f333e2884545558cac631f223eeb8a733d2 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index aa0e083733818fd2ee04159b08405ac70023f700..311559ffefc9836fe385d2b5378605bccf4144db 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index 121938f88d4df32c46b57262fe78236ffa9c30cc..953f07ca9f8df1f2972ffcce45cd46c4e97fba1f 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index e0235ba107383741bd24fad17ac6ae9feb1dc515..8e7f3214d6314efe3a187215f4c1500ce68f24b4 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index a893ea9725ee67e943a8b8158f69df664dca6681..75686beaa3de215ef30a068f06cf57c793d25fc4 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index b444c23d8c1649df1e3aa00740ed70e8c493e34c..130f85bd3f66dda9e2f1b0c8218de6263c02c10a 100644 (file)
@@ -13,6 +13,8 @@
 
 #include "wx/defs.h"
 
 
 #include "wx/defs.h"
 
+#if wxUSE_SELECT_DISPATCHER
+
 #include <sys/types.h>
 
 #include "wx/private/fdiodispatcher.h"
 #include <sys/types.h>
 
 #include "wx/private/fdiodispatcher.h"
@@ -111,5 +113,6 @@ private:
     int m_maxFD;
 };
 
     int m_maxFD;
 };
 
+#endif // wxUSE_SELECT_DISPATCHER
 
 #endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
 
 #endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
index 0d54483d108f2d1270babc4b673ff72f25fe969e..2bf77dd7a4de804255b85a4ec5a7918dfe4148d8 100644 (file)
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
 // Recommended setting: 1 (but can be safely disabled if you don't use it)
 #define wxUSE_BASE64        1
 
+// Set this to 1 to be able to use wxEventLoop even in console applications
+// (i.e. using base library only, without GUI). This is mostly useful for
+// processing socket events but is also necessary to use timers in console
+// applications
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be safely disabled if you don't use it)
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
 // Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
 // POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
 //
index 229ae70b3c3fdfd70a5a2eda100417928f8e9443..8e1d0d73c9351b2dad05f64fb3a1d0b25e07d330 100644 (file)
@@ -19,7 +19,9 @@
 class WXDLLEXPORT wxConsoleAppTraits : public wxConsoleAppTraitsBase
 {
 public:
 class WXDLLEXPORT wxConsoleAppTraits : public wxConsoleAppTraitsBase
 {
 public:
+#if wxUSE_CONSOLE_EVENTLOOP
     virtual wxEventLoopBase *CreateEventLoop();
     virtual wxEventLoopBase *CreateEventLoop();
+#endif // wxUSE_CONSOLE_EVENTLOOP
     virtual bool CreateEndProcessPipe(wxExecuteData& execData);
     virtual bool IsWriteFDOfEndProcessPipe(wxExecuteData& execData, int fd);
     virtual void DetachWriteFDOfEndProcessPipe(wxExecuteData& execData);
     virtual bool CreateEndProcessPipe(wxExecuteData& execData);
     virtual bool IsWriteFDOfEndProcessPipe(wxExecuteData& execData, int fd);
     virtual void DetachWriteFDOfEndProcessPipe(wxExecuteData& execData);
diff --git a/include/wx/unix/chkconf.h b/include/wx/unix/chkconf.h
new file mode 100644 (file)
index 0000000..a6a4e64
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Name:        wx/unix/chkconf.h
+ * Purpose:     Unix-specific config settings consistency checks
+ * Author:      Vadim Zeitlin
+ * Created:     2007-07-14
+ * RCS-ID:      $Id$
+ * Copyright:   (c) 2007 Vadim Zeitlin <vadim@wxwidgets.org>
+ * Licence:     wxWindows licence
+ */
+
+/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
+
+#if wxUSE_CONSOLE_EVENTLOOP
+#   if !wxUSE_SELECT_DISPATCHER && !wxUSE_EPOLL_DISPATCHER
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "wxSelect/EpollDispatcher needed for console event loop"
+#       else
+#           undef wxUSE_SELECT_DISPATCHER
+#           define wxUSE_SELECT_DISPATCHER 1
+#       endif
+#   endif
+#endif /* wxUSE_CONSOLE_EVENTLOOP */
index a794bdd42de3fdad4fa4088ef77f764aad0079e7..3f5b54913c1d8cc3bf4580188fb33054b4fd5e68 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef _WX_UNIX_EVTLOOP_H_
 #define _WX_UNIX_EVTLOOP_H_
 
 #ifndef _WX_UNIX_EVTLOOP_H_
 #define _WX_UNIX_EVTLOOP_H_
 
+#if wxUSE_CONSOLE_EVENTLOOP
+
 #include "wx/private/fdiodispatcher.h"
 #include "wx/unix/pipe.h"
 
 #include "wx/private/fdiodispatcher.h"
 #include "wx/unix/pipe.h"
 
@@ -67,4 +69,6 @@ private:
     DECLARE_NO_COPY_CLASS(wxConsoleEventLoop)
 };
 
     DECLARE_NO_COPY_CLASS(wxConsoleEventLoop)
 };
 
+#endif // wxUSE_CONSOLE_EVENTLOOP
+
 #endif // _WX_UNIX_EVTLOOP_H_
 #endif // _WX_UNIX_EVTLOOP_H_
index ef67a1520bd20d770867610b812532cf8f430613..c4b50744722d0e767eb8e4f77095771dd6b5ad68 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "wx/defs.h"
 
 
 #include "wx/defs.h"
 
-#ifdef HAVE_SYS_EPOLL_H
+#ifdef wxUSE_EPOLL_DISPATCHER
 
 #include "wx/private/fdiodispatcher.h"
 
 
 #include "wx/private/fdiodispatcher.h"
 
@@ -42,6 +42,6 @@ private:
     int m_epollDescriptor;
 };
 
     int m_epollDescriptor;
 };
 
-#endif // HAVE_SYS_EPOLL_H
+#endif // wxUSE_EPOLL_DISPATCHER
 
 #endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
 
 #endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
index b587067185c3e682e732b6ed438664810e182445..e3c9bec6f5ef44e175300bd7a402238bf16b6431 100644 (file)
 #ifndef _WX_X11_CHKCONF_H_
 #define _WX_X11_CHKCONF_H_
 
 #ifndef _WX_X11_CHKCONF_H_
 #define _WX_X11_CHKCONF_H_
 
-
 /* wxPalette is always needed */
 #if !wxUSE_PALETTE
 #   error "wxX11 requires wxUSE_PALETTE=1"
 #endif
 
 /* wxPalette is always needed */
 #if !wxUSE_PALETTE
 #   error "wxX11 requires wxUSE_PALETTE=1"
 #endif
 
+#if wxUSE_SOCKETS && !wxUSE_SELECT_DISPATCHER
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxSocket requires wxSelectDispatcher in wxX11"
+#   else
+#       undef wxUSE_SELECT_DISPATCHER
+#       define wxUSE_SELECT_DISPATCHER 1
+#   endif
+#endif
+
 #endif /* _WX_X11_CHKCONF_H_ */
 #endif /* _WX_X11_CHKCONF_H_ */
index 7cee7c7915131ad532bf74cd65de2d7a006d4d05..e77e00e3432971bb37abb28b49ab7375643329ef 100644 (file)
 
 #define wxUSE_BASE64        0
 
 
 #define wxUSE_BASE64        0
 
+#define wxUSE_CONSOLE_EVENTLOOP 0
+
 #define wxUSE_FILE          0
 #define wxUSE_FFILE         0
 
 #define wxUSE_FILE          0
 #define wxUSE_FFILE         0
 
 
 /* --- end common options --- */
 
 
 /* --- end common options --- */
 
+/*
+ * Unix-specific options
+ */
+#define wxUSE_SELECT_DISPATCHER 0
+#define wxUSE_EPOLL_DISPATCHER 0
+
 /* for some features we don't have dedicated configure switches, so just choose
  * the common values automatically */
 #if (defined(__WIN32__) && !defined(__WXUNIVERSAL__)) || defined(__WXPM__)
 /* for some features we don't have dedicated configure switches, so just choose
  * the common values automatically */
 #if (defined(__WIN32__) && !defined(__WXUNIVERSAL__)) || defined(__WXPM__)
index 7a8d2badbad4379b53a5f482242be4514143eb40..e8e6dfcd62a0995e9c25f9ce694cd16780f91804 100644 (file)
@@ -19,7 +19,7 @@
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#if wxUSE_SOCKETS
+#if wxUSE_SOCKETS && wxUSE_SELECT_DISPATCHER
 
 #include "wx/private/gsocketiohandler.h"
 #include "wx/unix/private.h"
 
 #include "wx/private/gsocketiohandler.h"
 #include "wx/unix/private.h"
index 2a96b334535d11feb1aa9cd92bbe1da7fbdbf043..ef8b95179c4856ed7dad6aa6a6b6b4d62185dd90 100644 (file)
@@ -19,6 +19,8 @@
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
+#if wxUSE_SELECT_DISPATCHER
+
 #include "wx/private/selectdispatcher.h"
 #include "wx/module.h"
 #include "wx/timer.h"
 #include "wx/private/selectdispatcher.h"
 #include "wx/module.h"
 #include "wx/timer.h"
@@ -290,3 +292,4 @@ private:
 
 IMPLEMENT_DYNAMIC_CLASS(wxSelectDispatcherModule, wxModule)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxSelectDispatcherModule, wxModule)
 
+#endif // wxUSE_SELECT_DISPATCHER
index 9773a110a5be2c6a9f3075e0cebebba226d342f0..b2dacab6dd8dcf89e89f5a0f5b900a3a76b97178 100644 (file)
@@ -95,8 +95,11 @@ wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
 
 #endif // wxUSE_TIMER
 
 
 #endif // wxUSE_TIMER
 
+#if wxUSE_CONSOLE_EVENTLOOP
+
 wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
 {
     return new wxEventLoop();
 }
 
 wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
 {
     return new wxEventLoop();
 }
 
+#endif // wxUSE_CONSOLE_EVENTLOOP
index 533d15b45a60f9f7388c7047b46b783929e6a9ad..382cd5473c8f5f7ab13a5d26ab2254e7a8c295ce 100644 (file)
@@ -19,7 +19,7 @@
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // for compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#ifdef HAVE_SYS_EPOLL_H
+#ifdef wxUSE_EPOLL_DISPATCHER
 
 #include "wx/unix/private/epolldispatcher.h"
 #include "wx/unix/private.h"
 
 #include "wx/unix/private/epolldispatcher.h"
 #include "wx/unix/private.h"
@@ -210,4 +210,4 @@ public:
 
 IMPLEMENT_DYNAMIC_CLASS(wxEpollDispatcherModule, wxModule)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxEpollDispatcherModule, wxModule)
 
-#endif // HAVE_SYS_EPOLL_H
+#endif // wxUSE_EPOLL_DISPATCHER
index 897f39a5bc1e3844b70b0a8a61257b1ede20d862..39afb42db065a142ddfc7eae4ff88a0a1688ccdd 100644 (file)
@@ -19,7 +19,7 @@
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#include "wx/evtloop.h"
+#if wxUSE_CONSOLE_EVENTLOOP
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
@@ -27,6 +27,7 @@
 #endif
 
 #include <errno.h>
 #endif
 
 #include <errno.h>
+#include "wx/evtloop.h"
 #include "wx/thread.h"
 #include "wx/module.h"
 #include "wx/unix/private/timer.h"
 #include "wx/thread.h"
 #include "wx/module.h"
 #include "wx/unix/private/timer.h"
 
 #define TRACE_EVENTS _T("events")
 
 
 #define TRACE_EVENTS _T("events")
 
-//this code should not be compiled when GUI is defined
-//(monolithic build issue)
-#if !wxUSE_GUI
-
 // ===========================================================================
 // wxEventLoop::PipeIOHandler implementation
 // ===========================================================================
 // ===========================================================================
 // wxEventLoop::PipeIOHandler implementation
 // ===========================================================================
@@ -128,13 +125,13 @@ wxConsoleEventLoop::wxConsoleEventLoop()
         return;
     }
 
         return;
     }
 
-#ifdef HAVE_SYS_EPOLL_H
+#ifdef wxUSE_EPOLL_DISPATCHER
     m_dispatcher = wxEpollDispatcher::Get();
     if ( !m_dispatcher )
     m_dispatcher = wxEpollDispatcher::Get();
     if ( !m_dispatcher )
-#endif // HAVE_SYS_EPOLL_H
-    {
+#endif // wxUSE_EPOLL_DISPATCHER
+#if wxUSE_SELECT_DISPATCHER
         m_dispatcher = wxSelectDispatcher::Get();
         m_dispatcher = wxSelectDispatcher::Get();
-    }
+#endif // wxUSE_WCHAR_T
 
     wxCHECK_RET( m_dispatcher, _T("failed to create IO dispatcher") );
 
 
     wxCHECK_RET( m_dispatcher, _T("failed to create IO dispatcher") );
 
@@ -194,4 +191,4 @@ void wxConsoleEventLoop::OnNextIteration()
     wxTheApp->CheckSignal();
 }
 
     wxTheApp->CheckSignal();
 }
 
-#endif // !wxUSE_GUI
+#endif // wxUSE_CONSOLE_EVENTLOOP
index dbd1509c8ef7021e1fd491306a9b5c92279baaf1..4a65ad12d5c7b4d7de80977d53caae6e051f569d 100644 (file)
@@ -334,6 +334,7 @@ wx/zstream.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
+wx/unix/chkconf.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h
index 525d05ce88f3908b20bac56f67ccf51db1e7926c..c738833e6f853e91219877e81339e8f13f07fa77 100644 (file)
@@ -237,6 +237,7 @@ wx/zstream.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
+wx/unix/chkconf.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h
index 28a5e33373df3aa09953c8ea7a800816c969384a..41cb07597f38709ab2b8ee03d73c010e461828a2 100644 (file)
@@ -262,6 +262,7 @@ wx/zstream.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
 wx/unix/app.h
 wx/unix/apptbase.h
 wx/unix/apptrait.h
+wx/unix/chkconf.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h
 wx/unix/execute.h
 wx/unix/evtloop.h
 wx/unix/mimetype.h