]> git.saurik.com Git - wxWidgets.git/commitdiff
replace wxAddProcessCallback() with wxAppTraits::AddProcessCallback() to fix linking...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 22 Mar 2008 00:07:13 +0000 (00:07 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 22 Mar 2008 00:07:13 +0000 (00:07 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

15 files changed:
Makefile.in
build/bakefiles/files.bkl
build/msw/wx_vc7.sln
build/msw/wx_vc8_core.vcproj
include/wx/unix/apptbase.h
include/wx/unix/apptrait.h
include/wx/unix/execute.h
src/gtk/utilsgtk.cpp
src/gtk1/utilsgtk.cpp
src/mac/corefoundation/utilsexc_cf.cpp
src/mgl/utils.cpp
src/motif/utils.cpp
src/unix/baseunix.cpp
src/unix/timerunx.cpp
src/unix/utilsunx.cpp

index f63eaa3370e2eb5f717b1e9ad99db7dede8497a0..fc40a65d8daedf6e7c8a0c49e8b01ee6b4dae16f 100644 (file)
@@ -729,7 +729,6 @@ ALL_BASE_SOURCES =  \
        src/common/selectdispatcher.cpp \
        src/unix/epolldispatcher.cpp \
        src/unix/appunix.cpp \
-       src/unix/baseunix.cpp \
        src/unix/evtloopunix.cpp \
        src/unix/dlunix.cpp \
        src/unix/snglinst.cpp \
@@ -3550,7 +3549,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3588,7 +3586,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3609,7 +3606,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3630,7 +3626,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3660,7 +3655,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3673,7 +3667,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -3694,7 +3687,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS =  \
        monodll_selectdispatcher.o \
        monodll_epolldispatcher.o \
        monodll_appunix.o \
-       monodll_baseunix.o \
        monodll_evtloopunix.o \
        monodll_dlunix.o \
        monodll_snglinst.o \
@@ -5456,7 +5448,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5494,7 +5485,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5515,7 +5505,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5536,7 +5525,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5566,7 +5554,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5579,7 +5566,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -5600,7 +5586,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_1 =  \
        monolib_selectdispatcher.o \
        monolib_epolldispatcher.o \
        monolib_appunix.o \
-       monolib_baseunix.o \
        monolib_evtloopunix.o \
        monolib_dlunix.o \
        monolib_snglinst.o \
@@ -7399,7 +7384,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7437,7 +7421,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7458,7 +7441,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7479,7 +7461,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7509,7 +7490,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7522,7 +7502,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7543,7 +7522,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_2 =  \
        basedll_selectdispatcher.o \
        basedll_epolldispatcher.o \
        basedll_appunix.o \
-       basedll_baseunix.o \
        basedll_evtloopunix.o \
        basedll_dlunix.o \
        basedll_snglinst.o \
@@ -7625,7 +7603,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7663,7 +7640,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7684,7 +7660,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7705,7 +7680,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7735,7 +7709,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7748,7 +7721,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -7769,7 +7741,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_3 =  \
        baselib_selectdispatcher.o \
        baselib_epolldispatcher.o \
        baselib_appunix.o \
-       baselib_baseunix.o \
        baselib_evtloopunix.o \
        baselib_dlunix.o \
        baselib_snglinst.o \
@@ -14541,27 +14512,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
 @COND_PLATFORM_OS2_1@monodll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONODLL_ODEP)
 @COND_PLATFORM_OS2_1@  $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp
 
-@COND_PLATFORM_UNIX_1@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@   $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@   $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@   $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@monodll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONODLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@      $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
 @COND_PLATFORM_UNIX_1@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP)
 @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
 
@@ -19056,27 +19006,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
 @COND_PLATFORM_OS2_1@monolib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(MONOLIB_ODEP)
 @COND_PLATFORM_OS2_1@  $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp
 
-@COND_PLATFORM_UNIX_1@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@   $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@   $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@   $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@monolib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(MONOLIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@      $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
 @COND_PLATFORM_UNIX_1@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP)
 @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
 
@@ -23022,27 +22951,6 @@ basedll_uma.o: $(srcdir)/src/mac/carbon/uma.cpp $(BASEDLL_ODEP)
 @COND_PLATFORM_OS2_1@basedll_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASEDLL_ODEP)
 @COND_PLATFORM_OS2_1@  $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp
 
-@COND_PLATFORM_UNIX_1@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@   $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@   $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@   $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@basedll_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASEDLL_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@      $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
 @COND_PLATFORM_UNIX_1@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP)
 @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
 
@@ -23832,27 +23740,6 @@ baselib_uma.o: $(srcdir)/src/mac/carbon/uma.cpp $(BASELIB_ODEP)
 @COND_PLATFORM_OS2_1@baselib_appunix.o: $(srcdir)/src/unix/appunix.cpp $(BASELIB_ODEP)
 @COND_PLATFORM_OS2_1@  $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/appunix.cpp
 
-@COND_PLATFORM_UNIX_1@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MAC@   $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_GTK@   $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_X11@   $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@baselib_baseunix.o: $(srcdir)/src/unix/baseunix.cpp $(BASELIB_ODEP)
-@COND_PLATFORM_MACOSX_1_TOOLKIT_@      $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/baseunix.cpp
-
 @COND_PLATFORM_UNIX_1@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP)
 @COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
 
index ca98e7d09409a4ee9e2cb51a4f4ff64ad97f0018..71e91e98204788d5875e6edf2cd2445b47d36528 100644 (file)
@@ -60,7 +60,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
     src/common/selectdispatcher.cpp
     src/unix/epolldispatcher.cpp
     src/unix/appunix.cpp
-    src/unix/baseunix.cpp
     src/unix/evtloopunix.cpp
     src/unix/dlunix.cpp
     src/unix/snglinst.cpp
index 465b7b109a9d82032c586f4d5a3ed4bb3db158a8..5151fa3f91054b085b8688976ef301fd3afe765f 100644 (file)
@@ -1,75 +1,39 @@
 Microsoft Visual Studio Solution File, Format Version 8.00\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "wx_vc7_wxregex.vcproj", "{7A1A5354-6DB4-53F1-B75C-FE909D796167}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "wx_vc7_wxzlib.vcproj", "{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "wx_vc7_wxpng.vcproj", "{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "wx_vc7_wxjpeg.vcproj", "{3CA6563C-F480-52D4-AF05-D641E25A5DF2}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "wx_vc7_wxtiff.vcproj", "{456F9EAD-4A96-59BD-A39A-75DAA25D517B}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "wx_vc7_wxexpat.vcproj", "{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxscintilla", "wx_vc7_wxscintilla.vcproj", "{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "wx_vc7_base.vcproj", "{79F1691B-08C4-55BB-985E-FDDB0BC8753C}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "wx_vc7_net.vcproj", "{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "wx_vc7_core.vcproj", "{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "wx_vc7_adv.vcproj", "{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "wx_vc7_media.vcproj", "{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "wx_vc7_html.vcproj", "{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "wx_vc7_qa.vcproj", "{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "wx_vc7_xml.vcproj", "{B036100A-CEA0-5466-BE27-7E5B3687CAB8}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "wx_vc7_xrc.vcproj", "{40DB525F-1EFF-56A4-8301-3AAD661135F3}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "wx_vc7_aui.vcproj", "{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "wx_vc7_richtext.vcproj", "{52F16F53-E13D-55CA-AD64-ACB0274B0704}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stc", "wx_vc7_stc.vcproj", "{4B498696-42F2-5547-B159-87E4CAF436C1}"\r
        ProjectSection(ProjectDependencies) = postProject\r
@@ -77,346 +41,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stc", "wx_vc7_stc.vcproj",
        EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "wx_vc7_gl.vcproj", "{407F0D6F-2B2D-5774-B9D3-FA972A663072}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-       EndProjectSection\r
 EndProject\r
 Global\r
-       GlobalSection(SolutionConfiguration) = preSolution\r
-               Debug = Debug\r
-               DLL Debug = DLL Debug\r
-               DLL Release = DLL Release\r
-               DLL Universal Debug = DLL Universal Debug\r
-               DLL Universal Release = DLL Universal Release\r
-               Release = Release\r
-               Universal Debug = Universal Debug\r
-               Universal Release = Universal Release\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfiguration) = postSolution\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Debug.ActiveCfg = Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Debug.Build.0 = Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Release.Build.0 = DLL Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Release.ActiveCfg = Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Release.Build.0 = Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Release.Build.0 = Universal Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Debug.ActiveCfg = Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Debug.Build.0 = Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Release.Build.0 = DLL Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Release.ActiveCfg = Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Release.Build.0 = Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Release.Build.0 = Universal Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Debug.ActiveCfg = Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Debug.Build.0 = Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Release.Build.0 = DLL Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Release.ActiveCfg = Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Release.Build.0 = Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Release.Build.0 = Universal Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Debug.ActiveCfg = Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Debug.Build.0 = Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Release.Build.0 = DLL Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Release.ActiveCfg = Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Release.Build.0 = Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Release.Build.0 = Universal Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Debug.ActiveCfg = Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Debug.Build.0 = Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Release.Build.0 = DLL Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Release.ActiveCfg = Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Release.Build.0 = Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Release.Build.0 = Universal Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Debug.ActiveCfg = Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Debug.Build.0 = Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Release.Build.0 = DLL Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Release.ActiveCfg = Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Release.Build.0 = Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Release.Build.0 = Universal Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Debug.ActiveCfg = Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Debug.Build.0 = Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Release.Build.0 = DLL Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Release.ActiveCfg = Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Release.Build.0 = Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Release.Build.0 = Universal Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Debug.ActiveCfg = Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Debug.Build.0 = Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Release.Build.0 = DLL Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Release.ActiveCfg = Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Release.Build.0 = Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Release.Build.0 = Universal Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Debug.ActiveCfg = Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Debug.Build.0 = Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Release.Build.0 = DLL Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Release.ActiveCfg = Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Release.Build.0 = Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Release.Build.0 = Universal Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Debug.ActiveCfg = Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Debug.Build.0 = Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Release.Build.0 = DLL Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Release.ActiveCfg = Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Release.Build.0 = Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Release.Build.0 = Universal Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Debug.ActiveCfg = Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Debug.Build.0 = Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Release.Build.0 = DLL Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Release.ActiveCfg = Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Release.Build.0 = Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Release.Build.0 = Universal Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Debug.ActiveCfg = Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Debug.Build.0 = Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Release.Build.0 = DLL Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Release.ActiveCfg = Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Release.Build.0 = Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Release.Build.0 = Universal Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Debug.ActiveCfg = Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Debug.Build.0 = Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Release.Build.0 = DLL Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Release.ActiveCfg = Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Release.Build.0 = Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Release.Build.0 = Universal Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Debug.ActiveCfg = Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Debug.Build.0 = Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Release.Build.0 = DLL Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Release.ActiveCfg = Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Release.Build.0 = Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Release.Build.0 = Universal Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Debug.ActiveCfg = Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Debug.Build.0 = Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Release.Build.0 = DLL Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Release.ActiveCfg = Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Release.Build.0 = Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Release.Build.0 = Universal Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Debug.ActiveCfg = Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Debug.Build.0 = Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Release.Build.0 = DLL Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Release.ActiveCfg = Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Release.Build.0 = Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Release.Build.0 = Universal Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Debug.ActiveCfg = Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Debug.Build.0 = Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Release.Build.0 = DLL Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Release.ActiveCfg = Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Release.Build.0 = Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Release.Build.0 = Universal Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Debug.ActiveCfg = Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Debug.Build.0 = Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Release.Build.0 = DLL Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Release.ActiveCfg = Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Release.Build.0 = Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Release.Build.0 = Universal Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Debug.ActiveCfg = Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Debug.Build.0 = Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Release.Build.0 = DLL Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Release.ActiveCfg = Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Release.Build.0 = Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Release.Build.0 = Universal Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Debug.ActiveCfg = Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Debug.Build.0 = Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Debug.ActiveCfg = DLL Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Debug.Build.0 = DLL Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Release.ActiveCfg = DLL Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Release.Build.0 = DLL Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Release.Build.0 = DLL Universal Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Release.ActiveCfg = Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Release.Build.0 = Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Debug.ActiveCfg = Universal Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Debug.Build.0 = Universal Debug|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Release.ActiveCfg = Universal Release|Win32\r
-               {407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Release.Build.0 = Universal Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(ExtensibilityGlobals) = postSolution\r
-       EndGlobalSection\r
-       GlobalSection(ExtensibilityAddIns) = postSolution\r
-       EndGlobalSection\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                DLL Universal Release|Win32 = DLL Universal Release|Win32\r
                DLL Universal Debug|Win32 = DLL Universal Debug|Win32\r
@@ -753,3 +379,4 @@ Global
                HideSolutionNode = FALSE\r
        EndGlobalSection\r
 EndGlobal\r
+\r
index b8af84bb65267fca367ffa841b5f8bf8fcee3525..1b6fc57d836f8412d6e74024650fe32d031b4c07 100644 (file)
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\gauge95.cpp"\r
+                               RelativePath="..\..\src\msw\gauge.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                        ExcludedFromBuild="true"\r
                                />\r
                        </File>\r
+                       <File\r
+                               RelativePath="..\..\src\msw\nativewin.cpp"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\src\msw\notebook.cpp"\r
                                >\r
                                RelativePath="..\..\src\msw\settings.cpp"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\src\msw\slider95.cpp"\r
+                               RelativePath="..\..\src\msw\slider.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\statbr95.cpp"\r
+                               RelativePath="..\..\src\msw\statline.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\statline.cpp"\r
+                               RelativePath="..\..\src\msw\stattext.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\stattext.cpp"\r
+                               RelativePath="..\..\src\msw\statusbar.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\tbar95.cpp"\r
+                               RelativePath="..\..\src\msw\textctrl.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\textctrl.cpp"\r
+                               RelativePath="..\..\src\msw\textentry.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\textentry.cpp"\r
+                               RelativePath="..\..\src\msw\tglbtn.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                />\r
                        </File>\r
                        <File\r
-                               RelativePath="..\..\src\msw\tglbtn.cpp"\r
+                               RelativePath="..\..\src\msw\toolbar.cpp"\r
                                >\r
                                <FileConfiguration\r
                                        Name="DLL Universal Release|Win32"\r
                                RelativePath="..\..\include\wx\msw\frame.h"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\gauge95.h"\r
+                               RelativePath="..\..\include\wx\msw\gauge.h"\r
                        />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\gdiimage.h"\r
                                RelativePath="..\..\include\wx\msw\setup0.h"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\slider95.h"\r
+                               RelativePath="..\..\include\wx\msw\slider.h"\r
                        />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\sound.h"\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\statbox.h"\r
                        />\r
-                       <File\r
-                               RelativePath="..\..\include\wx\msw\statbr95.h"\r
-                       />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\statline.h"\r
                        />\r
                                RelativePath="..\..\include\wx\msw\stattext.h"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\tabctrl.h"\r
+                               RelativePath="..\..\include\wx\msw\statusbar.h"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\taskbar.h"\r
+                               RelativePath="..\..\include\wx\msw\tabctrl.h"\r
                        />\r
                        <File\r
-                               RelativePath="..\..\include\wx\msw\tbar95.h"\r
+                               RelativePath="..\..\include\wx\msw\taskbar.h"\r
                        />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\textctrl.h"\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\tglbtn.h"\r
                        />\r
+                       <File\r
+                               RelativePath="..\..\include\wx\msw\toolbar.h"\r
+                       />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\tooltip.h"\r
                        />\r
                        <File\r
                                RelativePath="..\..\include\wx\msgdlg.h"\r
                        />\r
+                       <File\r
+                               RelativePath="..\..\include\wx\nativewin.h"\r
+                       />\r
                        <File\r
                                RelativePath="..\..\include\wx\nonownedwnd.h"\r
                        />\r
index afb666364345ebbbee42b48ef51ae68a36dec86f..db5604279b83695b64f54f85a29e060313476edd 100644 (file)
@@ -12,6 +12,7 @@
 #ifndef _WX_UNIX_APPTBASE_H_
 #define _WX_UNIX_APPTBASE_H_
 
+struct wxEndProcessData;
 struct wxExecuteData;
 class wxPipe;
 
@@ -41,7 +42,20 @@ public:
 
     // wait for the process termination, return whatever wxExecute() must
     // return
-    virtual int WaitForChild(wxExecuteData& execData) = 0;
+    //
+    // base class implementation handles all cases except wxEXEC_SYNC without
+    // wxEXEC_NOEVENTS one which is implemented at the GUI level
+    virtual int WaitForChild(wxExecuteData& execData);
+
+    // integrate the monitoring of the given fd with the port-specific event
+    // loop: when this fd, which corresponds to a dummy pipe opened between the
+    // parent and child processes, is closed by the child, the parent is
+    // notified about this via a call to wxHandleProcessTermination() function
+    //
+    // the default implementation uses wxFDIODispatcher and so is suitable for
+    // the console applications or ports which don't have any specific event
+    // loop
+    virtual int AddProcessCallback(wxEndProcessData *data, int fd);
 
 
     // wxThread helpers
index ab34f3ada930c60bfdad3eb764ece37c32a59250..73b06497558ce54e38181e598e56a75855f7bf0e 100644 (file)
@@ -22,7 +22,6 @@ public:
 #if wxUSE_CONSOLE_EVENTLOOP
     virtual wxEventLoopBase *CreateEventLoop();
 #endif // wxUSE_CONSOLE_EVENTLOOP
-    virtual int WaitForChild(wxExecuteData& execData);
 #if wxUSE_TIMER
     virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
 #endif
@@ -35,6 +34,9 @@ class WXDLLEXPORT wxGUIAppTraits : public wxGUIAppTraitsBase
 public:
     virtual wxEventLoopBase *CreateEventLoop();
     virtual int WaitForChild(wxExecuteData& execData);
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
+    virtual int AddProcessCallback(wxEndProcessData *data, int fd);
+#endif
 #if wxUSE_TIMER
     virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
 #endif
index 9c9ea40953a8f95d80f2949cd0d18e99f9120821..095435d5256dace9505c5fae949b59259f8504dd 100644 (file)
 class WXDLLIMPEXP_FWD_BASE wxProcess;
 class wxStreamTempInputBuffer;
 
-// some ports have toolkit-specific implementations of wxAddProcessCallback()
-// but by default we use a generic wxFDIOHandler-based mechanism under Unix
-#if defined(__UNIX__) && \
-    !(defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMGL__))
-    #define wxHAS_GENERIC_PROCESS_CALLBACK 1
-#endif
-
-#ifdef wxHAS_GENERIC_PROCESS_CALLBACK
-struct wxEndProcessFDIOHandler;
-#endif
-
 // if pid > 0, the execution is async and the data is freed in the callback
 // executed when the process terminates, if pid < 0, the execution is
 // synchronous and the caller (wxExecute) frees the data
@@ -35,10 +24,6 @@ struct wxEndProcessData
     int tag;                // port dependent value
     wxProcess *process;     // if !NULL: notified on process termination
     int  exitcode;          // the exit code
-
-#ifdef wxHAS_GENERIC_PROCESS_CALLBACK
-    wxEndProcessFDIOHandler *fdioHandler;
-#endif
 };
 
 // struct in which information is passed from wxExecute() to wxAppTraits
@@ -82,24 +67,4 @@ struct wxExecuteData
 // callback function and is common to all ports (src/unix/utilsunx.cpp)
 extern WXDLLIMPEXP_BASE void wxHandleProcessTermination(wxEndProcessData *proc_data);
 
-// This function is called to associate the port-specific callback with the
-// child process. The return valus is port-specific.
-//
-// The file descriptor 'fd' is descriptor of a dummy pipe opened between the
-// parent and the child. No data are written to or read from this pipe, its
-// sole purpose is that the child process will close it when it terminates and
-// the parent will be notified about it if it looks at 'fd' (e.g. using
-// select()).
-//
-// wxAddProcessCallback() does whatever is necessary to ensure that 'fd' is
-// periodically (typically every event loop iteration) checked for its status
-// and that wxHandleProcessTermination() is called once 'fd' indicates the
-// child terminated.
-extern WXDLLIMPEXP_CORE int wxAddProcessCallback(wxEndProcessData *proc_data, int fd);
-
-#if defined(__WXMAC__) || defined(__WXCOCOA__)
-// For ports (e.g. DARWIN) which can add callbacks based on the pid
-extern int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid);
-#endif
-
 #endif // _WX_UNIX_EXECUTE_H
index e7b6208cec83e197b923869302bf5f93a8f689a4..f557d87d970fc55e224fc780954e1f0b4a1fa0c2 100644 (file)
@@ -256,7 +256,7 @@ void GTK_EndProcessDetector(gpointer data, gint source,
 }
 }
 
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
+int wxGUIAppTraits::AddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
     int tag = gdk_input_add(fd,
                             GDK_INPUT_READ,
index 2612f63f776de064af60e98971552e08bdfb2078..a0d3f1a54bbc200b86c10a0067a02d93c619537e 100644 (file)
@@ -163,7 +163,7 @@ void GTK_EndProcessDetector(gpointer data, gint source,
 }
 }
 
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
+int wxGUIAppTraits::AddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
     int tag = gdk_input_add(fd,
                             GDK_INPUT_READ,
@@ -173,11 +173,15 @@ int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
     return tag;
 }
 
+#if wxUSE_TIMER
+
 wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
 {
     return new wxGTKTimerImpl(timer);
 }
 
+#endif // wxUSE_TIMER
+
 // ----------------------------------------------------------------------------
 // wxPlatformInfo-related
 // ----------------------------------------------------------------------------
index 93dc45dd5db283585477f8b660cc1b345cd00f3e..2ab2dbd059efa0c8a2b40fcf942e71fd9969900f 100644 (file)
 
 #include <sys/wait.h>
 
-// Use polling instead of Mach ports, which doesn't work on Intel
-// due to task_for_pid security issues.
-
-// http://developer.apple.com/technotes/tn/tn2050.html
-
-// What's a better test for Intel vs PPC?
-#ifdef WORDS_BIGENDIAN
-#define USE_POLLING 0
-#else
-#define USE_POLLING 1
-#endif
-
-#if USE_POLLING
-
-#if wxUSE_THREADS
-class wxProcessTerminationEventHandler: public wxEvtHandler
-{
-  public:
-    wxProcessTerminationEventHandler(wxEndProcessData* data)
-    {
-        m_data = data;
-        Connect(-1, wxEVT_END_PROCESS, wxProcessEventHandler(wxProcessTerminationEventHandler::OnTerminate));
-    }
-
-    void OnTerminate(wxProcessEvent& event)
-    {
-        Disconnect(-1, wxEVT_END_PROCESS, wxProcessEventHandler(wxProcessTerminationEventHandler::OnTerminate));
-        wxHandleProcessTermination(m_data);
-
-        // NOTE: We don't use this to delay destruction until the next idle run but rather to
-        // avoid killing ourselves while our caller (which is our wxEvtHandler superclass
-        // ProcessPendingEvents) still needs our m_eventsLocker to be valid.
-        // Since we're in the GUI library we can guarantee that ScheduleForDestroy is using
-        // the GUI implementation which delays destruction and not the base implementation
-        // which does it immediately.
-        wxTheApp->GetTraits()->ScheduleForDestroy(this);
-    }
-
-    wxEndProcessData* m_data;
-};
-
-class wxProcessTerminationThread: public wxThread
-{
-  public:
-    wxProcessTerminationThread(wxEndProcessData* data, wxProcessTerminationEventHandler* handler): wxThread(wxTHREAD_DETACHED)
-    {
-        m_data = data;
-        m_handler = handler;
-    }
-
-    virtual void* Entry();
-
-    wxProcessTerminationEventHandler* m_handler;
-    wxEndProcessData* m_data;
-};
-
-// The problem with this is that we may be examining the
-// process e.g. in OnIdle at the point this cleans up the process,
-// so we need to delay until it's safe.
-
-void* wxProcessTerminationThread::Entry()
-{
-    while (true)
-    {
-        usleep(100);
-        int status = 0;
-        int rc = waitpid(abs(m_data->pid), & status, 0);
-        if (rc != 0)
-        {
-            if ((rc != -1) && WIFEXITED(status))
-                m_data->exitcode = WEXITSTATUS(status);
-            else
-                m_data->exitcode = -1;
-
-            wxProcessEvent event;
-            wxPostEvent(m_handler, event);
-
-            break;
-        }
-    }
-
-    return NULL;
-}
-
-int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid)
-{
-    if (pid < 1)
-        return -1;
-
-    wxProcessTerminationEventHandler* handler = new wxProcessTerminationEventHandler(proc_data);
-    wxProcessTerminationThread* thread = new wxProcessTerminationThread(proc_data, handler);
-
-    if (thread->Create() != wxTHREAD_NO_ERROR)
-    {
-        wxLogDebug(wxT("Could not create termination detection thread."));
-        delete thread;
-        delete handler;
-        return -1;
-    }
-
-    thread->Run();
-
-    return 0;
-}
-#else // !wxUSE_THREADS
-int wxAddProcessCallbackForPid(wxEndProcessData*, int)
-{
-    wxLogDebug(wxT("Could not create termination detection thread."));
-    return -1;
-}
-#endif // wxUSE_THREADS/!wxUSE_THREADS
-
-#else // !USE_POLLING
-
-#include <CoreFoundation/CFMachPort.h>
-extern "C" {
-#include <mach/mach.h>
-}
-
-void wxMAC_MachPortEndProcessDetect(CFMachPortRef WXUNUSED(port), void *data)
-{
-    wxEndProcessData *proc_data = (wxEndProcessData*)data;
-    wxLogDebug(wxT("Process ended"));
-    int status = 0;
-    int rc = waitpid(abs(proc_data->pid), &status, WNOHANG);
-    if(!rc)
-    {
-        wxLogDebug(wxT("Mach port was invalidated, but process hasn't terminated!"));
-        return;
-    }
-    if((rc != -1) && WIFEXITED(status))
-        proc_data->exitcode = WEXITSTATUS(status);
-    else
-        proc_data->exitcode = -1;
-    wxHandleProcessTermination(proc_data);
-}
-
-int wxAddProcessCallbackForPid(wxEndProcessData *proc_data, int pid)
-{
-    if(pid < 1)
-        return -1;
-    kern_return_t    kernResult;
-    mach_port_t    taskOfOurProcess;
-    mach_port_t    machPortForProcess;
-    taskOfOurProcess = mach_task_self();
-    if(taskOfOurProcess == MACH_PORT_NULL)
-    {
-        wxLogDebug(wxT("No mach_task_self()"));
-        return -1;
-    }
-    wxLogDebug(wxT("pid=%d"),pid);
-    kernResult = task_for_pid(taskOfOurProcess,pid, &machPortForProcess);
-    if(kernResult != KERN_SUCCESS)
-    {
-        wxLogDebug(wxT("no task_for_pid()"));
-        // try seeing if it is already dead or something
-        // FIXME: a better method would be to call the callback function
-        // from idle time until the process terminates. Of course, how
-        // likely is it that it will take more than 0.1 seconds for the
-        // mach terminate event to make its way to the BSD subsystem?
-        usleep(100); // sleep for 0.1 seconds
-        wxMAC_MachPortEndProcessDetect(NULL, (void*)proc_data);
-        return -1;
-    }
-    CFMachPortContext termcb_contextinfo;
-    termcb_contextinfo.version = 0;
-    termcb_contextinfo.info = (void*)proc_data;
-    termcb_contextinfo.retain = NULL;
-    termcb_contextinfo.release = NULL;
-    termcb_contextinfo.copyDescription = NULL;
-    CFMachPortRef    CFMachPortForProcess;
-    Boolean        ShouldFreePort;
-    CFMachPortForProcess = CFMachPortCreateWithPort(NULL, machPortForProcess, NULL, &termcb_contextinfo, &ShouldFreePort);
-    if(!CFMachPortForProcess)
-    {
-        wxLogDebug(wxT("No CFMachPortForProcess"));
-        mach_port_deallocate(taskOfOurProcess, machPortForProcess);
-        return -1;
-    }
-    if(ShouldFreePort)
-    {
-        kernResult = mach_port_deallocate(taskOfOurProcess, machPortForProcess);
-        if(kernResult!=KERN_SUCCESS)
-        {
-            wxLogDebug(wxT("Couldn't deallocate mach port"));
-            return -1;
-        }
-    }
-    CFMachPortSetInvalidationCallBack(CFMachPortForProcess, &wxMAC_MachPortEndProcessDetect);
-    CFRunLoopSourceRef    runloopsource;
-    runloopsource = CFMachPortCreateRunLoopSource(NULL,CFMachPortForProcess, (CFIndex)0);
-    if(!runloopsource)
-    {
-        wxLogDebug(wxT("Couldn't create runloopsource"));
-        return -1;
-    }
-
-    CFRelease(CFMachPortForProcess);
-
-    CFRunLoopAddSource(CFRunLoopGetCurrent(),runloopsource,kCFRunLoopDefaultMode);
-    CFRelease(runloopsource);
-    wxLogDebug(wxT("Successfully added notification to the runloop"));
-    return 0;
-}
-
-#endif // USE_POLLING/!USE_POLLING
-
-/////////////////////////////////////////////////////////////////////////////
-// New implementation avoiding mach ports entirely.
-
 #include <CoreFoundation/CFSocket.h>
 
 /*!
@@ -301,14 +91,14 @@ extern "C" void WXCF_EndProcessDetector(CFSocketRef s,
 }
 
 /*!
-    Implements the GUI-specific wxAddProcessCallback for both wxMac and
+    Implements the GUI-specific AddProcessCallback() for both wxMac and
     wxCocoa using the CFSocket/CFRunLoop API which is available to both.
     Takes advantage of the fact that sockets on UNIX are just regular
     file descriptors and thus even a non-socket file descriptor can
     apparently be used with CFSocket so long as you only tell CFSocket
     to do things with it that would be valid for a non-socket fd.
  */
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
+int wxGUIAppTraits::AddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
     static int s_last_tag = 0;
     CFSocketContext context =
@@ -354,8 +144,6 @@ int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
 
 // NOTE: This doesn't really belong here but this was a handy file to
 // put it in because it's already compiled for wxCocoa and wxMac GUI lib.
-#if wxUSE_GUI
-
 #if wxUSE_STDPATHS
 static wxStandardPathsCF gs_stdPaths;
 wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
@@ -364,5 +152,3 @@ wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
 }
 #endif
 
-#endif // wxUSE_GUI
-
index 114277e970139d06f4fd1aa776415f2f24e201dd..25618fdb3cb528f2f01d661f50d12903a3499663 100644 (file)
@@ -164,21 +164,3 @@ wxMouseState wxGetMouseState()
     return ms;
 }
 
-
-#ifdef __UNIX__
-
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
-{
-    wxFAIL_MSG(wxT("wxAddProcessCallback not implemented in wxMGL!"));
-    return 0;
-#if 0 // FIXME_MGL -do we need it at all?
-    int tag = gdk_input_add(fd,
-                            GDK_INPUT_READ,
-                            GTK_EndProcessDetector,
-                            (gpointer)proc_data);
-
-    return tag;
-#endif
-}
-
-#endif
index 2453e7bd0d49ffb97f0aff2815dce161e0a20564..e5ba829b5d1587f95c787c77f9c31097fd45c209 100644 (file)
@@ -96,7 +96,7 @@ static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid),
     XtRemoveInput(*id);
 }
 
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
+int wxGUIAppTraits::AddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
     XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(),
                                  fd,
index c5e3ddcee1b2436200f609699b37b266d0818930..cce400bf2039df1a857ca7359a8575905dc569c5 100644 (file)
@@ -30,7 +30,6 @@
     #include "wx/utils.h"
 #endif //WX_PRECOMP
 
-#include "wx/apptrait.h"
 #include "wx/unix/execute.h"
 #include "wx/evtloop.h"
 #include "wx/gsocket.h"
 // wxConsoleAppTraits implementation
 // ============================================================================
 
-int
-wxConsoleAppTraits::WaitForChild(wxExecuteData& execData)
-{
-    int exitcode = 0;
-    if ( execData.flags & wxEXEC_SYNC )
-    {
-        if ( waitpid(execData.pid, &exitcode, 0) == -1 || !WIFEXITED(exitcode) )
-        {
-            wxLogSysError(_("Waiting for subprocess termination failed"));
-        }
-    }
-    else // asynchronous execution
-    {
-        wxEndProcessData *endProcData = new wxEndProcessData;
-        endProcData->process  = execData.process;
-        endProcData->pid      = execData.pid;
-        endProcData->tag = wxAddProcessCallback
-                           (
-                             endProcData,
-                             execData.pipeEndProcDetect.Detach(wxPipe::Read)
-                           );
-
-        execData.pipeEndProcDetect.Close();
-        exitcode = execData.pid;
-
-    }
-
-    return exitcode;
-}
-
 #if wxUSE_TIMER
 
-wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
-{
-    // this doesn't work yet as there is no main loop in console applications
-    // (but it will be added later)
-    return new wxUnixTimerImpl(timer);
-}
-
 #endif // wxUSE_TIMER
 
 //  Note: wxConsoleAppTraits::CreateEventLoop() is defined in evtloopunix.cpp!
index e742b79486e4533e29afdd450c070b1165e4a741..158736fcb3a5a0caa8a68230515d2a15b47488f8 100644 (file)
@@ -29,6 +29,7 @@
     #include "wx/event.h"
 #endif
 
+#include "wx/apptrait.h"
 #include "wx/longlong.h"
 
 #include <sys/time.h>
@@ -256,5 +257,10 @@ wxUsecClock_t wxGetLocalTimeUsec()
     return wxGetLocalTimeMillis() * 1000L;
 }
 
+wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
+{
+    return new wxUnixTimerImpl(timer);
+}
+
 #endif // wxUSE_TIMER
 
index 2b5056af5f3b226ff3f6d5b89f8888a8ad3c4239..e47af5bf5537aa2ffafbaff4e6010c6014119868 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "wx/wfstream.h"
 
+#include "wx/private/fdiodispatcher.h"
 #include "wx/unix/execute.h"
 #include "wx/unix/private.h"
 
@@ -1220,30 +1221,10 @@ bool wxHandleFatalExceptions(bool doit)
 
 #endif // wxUSE_ON_FATAL_EXCEPTION
 
-#endif // wxUSE_BASE
-
-#ifdef __DARWIN__
-    #include <sys/errno.h>
-#endif
 // ----------------------------------------------------------------------------
 // wxExecute support
 // ----------------------------------------------------------------------------
 
-/*
-    NOTE: If this proves not to work well for wxMac then move back to the old
-    behavior.  If, however, it proves to work just fine, nuke all of the code
-    for the old behavior.  I strongly suggest backporting this to 2.8 as well.
-    However, beware that while you can nuke the old code here, you cannot
-    nuke the wxAddProcessCallbackForPid from the 2.8 branch (found in
-    utilsexc_cf since it's an exported symbol).
- */
-// #define USE_OLD_DARWIN_END_PROCESS_DETECT (defined(__DARWIN__) && defined(__WXMAC__))
-#define USE_OLD_DARWIN_END_PROCESS_DETECT 0
-
-// wxMac/wxCocoa don't use the same process end detection mechanisms so we don't
-// need wxExecute-related helpers for them
-#if !USE_OLD_DARWIN_END_PROCESS_DETECT
-
 bool wxAppTraits::CreateEndProcessPipe(wxExecuteData& execData)
 {
     return execData.pipeEndProcDetect.Create();
@@ -1260,261 +1241,152 @@ void wxAppTraits::DetachWriteFDOfEndProcessPipe(wxExecuteData& execData)
     execData.pipeEndProcDetect.Close();
 }
 
-#else // !Darwin
-
-bool wxAppTraits::CreateEndProcessPipe(wxExecuteData& WXUNUSED(execData))
-{
-    return true;
-}
-
-bool
-wxAppTraits::IsWriteFDOfEndProcessPipe(wxExecuteData& WXUNUSED(execData),
-                                          int WXUNUSED(fd))
-{
-    return false;
-}
-
-void
-wxAppTraits::DetachWriteFDOfEndProcessPipe(wxExecuteData& WXUNUSED(execData))
-{
-    // nothing to do here, we don't use the pipe
-}
-
-#endif // !Darwin/Darwin
-
-#if wxUSE_GUI
-
-int wxGUIAppTraits::WaitForChild(wxExecuteData& execData)
+int wxAppTraits::AddProcessCallback(wxEndProcessData *data, int fd)
 {
-    wxEndProcessData *endProcData = new wxEndProcessData;
-
-    const int flags = execData.flags;
-
-    // wxAddProcessCallback is now (with DARWIN) allowed to call the
-    // callback function directly if the process terminates before
-    // the callback can be added to the run loop. Set up the endProcData.
-    if ( flags & wxEXEC_SYNC )
+    // define a custom handler processing only the closure of the descriptor
+    struct wxEndProcessFDIOHandler : public wxFDIOHandler
     {
-        // we may have process for capturing the program output, but it's
-        // not used in wxEndProcessData in the case of sync execution
-        endProcData->process = NULL;
-
-        // sync execution: indicate it by negating the pid
-        endProcData->pid = -execData.pid;
-    }
-    else
-    {
-        // async execution, nothing special to do -- caller will be
-        // notified about the process termination if process != NULL, endProcData
-        // will be deleted in GTK_EndProcessDetector
-        endProcData->process  = execData.process;
-        endProcData->pid      = execData.pid;
-    }
+        wxEndProcessFDIOHandler(wxEndProcessData *data, int fd)
+            : m_data(data), m_fd(fd)
+        {}
 
+        virtual void OnReadWaiting()
+            { wxFAIL_MSG("this isn't supposed to happen"); }
+        virtual void OnWriteWaiting()
+            { wxFAIL_MSG("this isn't supposed to happen"); }
 
-    if ( !(flags & wxEXEC_NOEVENTS) )
-    {
-#if USE_OLD_DARWIN_END_PROCESS_DETECT
-        endProcData->tag = wxAddProcessCallbackForPid(endProcData, execData.pid);
-#else
-        endProcData->tag = wxAddProcessCallback
-                           (
-                             endProcData,
-                             execData.pipeEndProcDetect.Detach(wxPipe::Read)
-                           );
-
-        execData.pipeEndProcDetect.Close();
-#endif // USE_OLD_DARWIN_END_PROCESS_DETECT
-    }
-
-    if ( flags & wxEXEC_SYNC )
-    {
-        wxBusyCursor bc;
-        int exitcode = 0;
-
-        wxWindowDisabler *wd = flags & (wxEXEC_NODISABLE | wxEXEC_NOEVENTS)
-                                    ? NULL
-                                    : new wxWindowDisabler;
-
-        if ( flags & wxEXEC_NOEVENTS )
+        virtual void OnExceptionWaiting()
         {
-            // just block waiting for the child to exit
+            const int pid = m_data->pid > 0 ? m_data->pid : -(m_data->pid);
             int status = 0;
 
-            int result = waitpid(execData.pid, &status, 0);
-#ifdef __DARWIN__
-            /*  DE: waitpid manpage states that waitpid can fail with EINTR
-                if the call is interrupted by a caught signal.  I suppose
-                that means that this ought to be a while loop.
-
-                The odd thing is that it seems to fail EVERY time.  It fails
-                with a quickly exiting process (e.g. echo), and fails with a
-                slowly exiting process (e.g. sleep 2) but clearly after
-                having waited for the child to exit. Maybe it's a bug in
-                my particular version.
-
-                It works, however, from the CFSocket callback without this
-                trick but in that case it's used only after CFSocket calls
-                the callback and with the WNOHANG flag which would seem to
-                preclude it from being interrupted or at least make it much
-                less likely since it would not then be waiting.
-
-                If Darwin's man page is to be believed then this is definitely
-                necessary.  It's just weird that I've never seen it before
-                and apparently no one else has either or you'd think they'd
-                have reported it by now.  Perhaps blocking the GUI while
-                waiting for a child process to exit is simply not that common.
-             */
-            if(result == -1 && errno == EINTR)
+            // has the process really terminated?
+            int rc = waitpid(pid, &status, WNOHANG);
+            if ( rc == 0 )
             {
-                result = waitpid(execData.pid, &status, 0);
+                // This can only happen if the child application closes our
+                // dummy pipe that is used to monitor its lifetime; in that
+                // case, our best bet is to pretend the process did terminate,
+                // because otherwise wxExecute() would hang indefinitely
+                // (OnExceptionWaiting() won't be called again, the descriptor
+                // is closed now).
+                wxLogDebug("Child process (PID %d) still alive, "
+                           "even though pipe was closed.", pid);
             }
-
-#endif
-
-            if ( result == -1 )
+            else if ( rc == -1 )
             {
-                wxLogLastError(_T("waitpid"));
-                exitcode = -1;
+                // As above, if waitpid() fails, the best we can do is to log the
+                // error and pretend the child terminated:
+                wxLogSysError(_("Failed to check child process' status"));
             }
-            else
-            {
-                wxASSERT_MSG( result == execData.pid,
-                              _T("unexpected waitpid() return value") );
 
-                if ( WIFEXITED(status) )
-                {
-                    exitcode = WEXITSTATUS(status);
-                }
-                else // abnormal termination?
-                {
-                    wxASSERT_MSG( WIFSIGNALED(status),
-                                  _T("unexpected child wait status") );
-                    exitcode = -1;
-                }
-            }
-        }
-        else // !wxEXEC_NOEVENTS
-        {
-            // endProcData->pid will be set to 0 from
-            // wxHandleProcessTermination when the process terminates
-            while ( endProcData->pid != 0 )
-            {
-                bool idle = true;
+            // set exit code to -1 if something bad happened
+            m_data->exitcode = rc > 0 && WIFEXITED(status) ? WEXITSTATUS(status)
+                                                           : -1;
 
-#if HAS_PIPE_INPUT_STREAM
-                if ( execData.bufOut )
-                {
-                    execData.bufOut->Update();
-                    idle = false;
-                }
-
-                if ( execData.bufErr )
-                {
-                    execData.bufErr->Update();
-                    idle = false;
-                }
-#endif // HAS_PIPE_INPUT_STREAM
+            wxLogTrace("exec",
+                       "Child process (PID %d) terminated with exit code %d",
+                       pid, m_data->exitcode);
 
-                // don't consume 100% of the CPU while we're sitting in this
-                // loop
-                if ( idle )
-                    wxMilliSleep(1);
+            // child exited, end waiting
+            wxFDIODispatcher::Get()->UnregisterFD(m_fd);
+            close(m_fd);
 
-                // give GTK+ a chance to call GTK_EndProcessDetector here and
-                // also repaint the GUI
-                wxYield();
-            }
+            wxHandleProcessTermination(m_data);
 
-            exitcode = endProcData->exitcode;
+            delete this;
         }
 
-        delete wd;
-        delete endProcData;
+        wxEndProcessData * const m_data;
+        const int m_fd;
+    };
 
-        return exitcode;
-    }
-    else // async execution
-    {
-        return execData.pid;
-    }
+    wxFDIODispatcher::Get()->RegisterFD
+                             (
+                                 fd,
+                                 new wxEndProcessFDIOHandler(data, fd),
+                                 wxFDIO_EXCEPTION
+                             );
+    return fd; // unused, but return something unique for the tag
 }
 
-#endif //wxUSE_GUI
-
-#if wxUSE_BASE
-
-#ifdef wxHAS_GENERIC_PROCESS_CALLBACK
-struct wxEndProcessFDIOHandler : public wxFDIOHandler
+int wxAppTraits::WaitForChild(wxExecuteData& execData)
 {
-    wxEndProcessFDIOHandler(wxEndProcessData *data, int fd)
-        : m_data(data), m_fd(fd)
-    {}
-
-    virtual void OnReadWaiting()
-        { wxFAIL_MSG("this isn't supposed to happen"); }
-    virtual void OnWriteWaiting()
-        { wxFAIL_MSG("this isn't supposed to happen"); }
-
-    virtual void OnExceptionWaiting()
+    if ( execData.flags & wxEXEC_SYNC )
     {
-        int pid = (m_data->pid > 0) ? m_data->pid : -(m_data->pid);
+        // just block waiting for the child to exit
         int status = 0;
 
-        // has the process really terminated?
-        int rc = waitpid(pid, &status, WNOHANG);
-        if ( rc == 0 )
+        int result = waitpid(execData.pid, &status, 0);
+#ifdef __DARWIN__
+        /*  DE: waitpid manpage states that waitpid can fail with EINTR
+            if the call is interrupted by a caught signal.  I suppose
+            that means that this ought to be a while loop.
+
+            The odd thing is that it seems to fail EVERY time.  It fails
+            with a quickly exiting process (e.g. echo), and fails with a
+            slowly exiting process (e.g. sleep 2) but clearly after
+            having waited for the child to exit. Maybe it's a bug in
+            my particular version.
+
+            It works, however, from the CFSocket callback without this
+            trick but in that case it's used only after CFSocket calls
+            the callback and with the WNOHANG flag which would seem to
+            preclude it from being interrupted or at least make it much
+            less likely since it would not then be waiting.
+
+            If Darwin's man page is to be believed then this is definitely
+            necessary.  It's just weird that I've never seen it before
+            and apparently no one else has either or you'd think they'd
+            have reported it by now.  Perhaps blocking the GUI while
+            waiting for a child process to exit is simply not that common.
+         */
+        if ( result == -1 && errno == EINTR )
         {
-            // This can only happen if the child application closes our dummy
-            // pipe that is used to monitor its lifetime; in that case, our
-            // best bet is to pretend the process did terminate, because
-            // otherwise wxExecute() would hang indefinitely
-            // (OnExceptionWaiting() won't be called again, the descriptor
-            // is closed now).
-            wxLogDebug("Child process (PID %i) still alive, even though notification was received that it terminated.", pid);
+            result = waitpid(execData.pid, &status, 0);
         }
-        else if ( rc == -1 )
+#endif // __DARWIN__
+
+        if ( result == -1 )
         {
-            // As above, if waitpid() fails, the best we can do is to log the
-            // error and pretend the child terminated:
-            wxLogSysError(_("Failed to check child process' status"));
+            wxLogLastError("waitpid");
         }
+        else // child terminated
+        {
+            wxASSERT_MSG( result == execData.pid,
+                          "unexpected waitpid() return value" );
 
-        // set exit code to -1 if something bad happened
-        m_data->exitcode = (rc > 0 && WIFEXITED(status))
-                           ? WEXITSTATUS(status)
-                           : -1;
-
-        wxLogTrace("exec",
-                   "Child process (PID %i) terminated with exit code %i",
-                   pid, m_data->exitcode);
-
-        // child exited, end waiting
-        wxFDIODispatcher::Get()->UnregisterFD(m_fd);
-        close(m_fd);
+            if ( WIFEXITED(status) )
+            {
+                return WEXITSTATUS(status);
+            }
+            else // abnormal termination?
+            {
+                wxASSERT_MSG( WIFSIGNALED(status),
+                              "unexpected child wait status" );
+            }
+        }
 
-        m_data->fdioHandler = NULL;
-        wxHandleProcessTermination(m_data);
+        wxLogSysError(_("Waiting for subprocess termination failed"));
 
-        delete this;
+        return -1;
     }
+    else // asynchronous execution
+    {
+        wxEndProcessData *endProcData = new wxEndProcessData;
+        endProcData->process  = execData.process;
+        endProcData->pid      = execData.pid;
+        endProcData->tag = AddProcessCallback
+                           (
+                             endProcData,
+                             execData.pipeEndProcDetect.Detach(wxPipe::Read)
+                           );
 
-    wxEndProcessData *m_data;
-    int m_fd;
-};
+        execData.pipeEndProcDetect.Close();
+        return execData.pid;
 
-int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
-{
-    proc_data->fdioHandler = new wxEndProcessFDIOHandler(proc_data, fd);
-    wxFDIODispatcher::Get()->RegisterFD
-                             (
-                                 fd,
-                                 proc_data->fdioHandler,
-                                 wxFDIO_EXCEPTION
-                             );
-    return fd; // unused, but return something unique for the tag
+    }
 }
-#endif // wxHAS_GENERIC_PROCESS_CALLBACK
 
 void wxHandleProcessTermination(wxEndProcessData *proc_data)
 {
@@ -1527,13 +1399,91 @@ void wxHandleProcessTermination(wxEndProcessData *proc_data)
     // clean up
     if ( proc_data->pid > 0 )
     {
-       delete proc_data;
+        // async execution
+        delete proc_data;
     }
-    else
+    else // sync execution
     {
-       // let wxExecute() know that the process has terminated
-       proc_data->pid = 0;
+        // let wxExecute() know that the process has terminated
+        proc_data->pid = 0;
     }
 }
 
 #endif // wxUSE_BASE
+
+#if wxUSE_GUI
+
+int wxGUIAppTraits::WaitForChild(wxExecuteData& execData)
+{
+    const int flags = execData.flags;
+    if ( !(flags & wxEXEC_SYNC) || (flags & wxEXEC_NOEVENTS) )
+    {
+        // async or blocking sync cases are already handled by the base class
+        // just fine, no need to duplicate its code here
+        return wxAppTraits::WaitForChild(execData);
+    }
+
+    // here we're dealing with the case of synchronous execution when we want
+    // to process the GUI events while waiting for the child termination
+
+    wxEndProcessData endProcData;
+
+    // we may have process for capturing the program output, but it's
+    // not used in wxEndProcessData in the case of sync execution
+    endProcData.process = NULL;
+
+    // sync execution: indicate it by negating the pid
+    endProcData.pid = -execData.pid;
+
+    endProcData.tag = AddProcessCallback
+                      (
+                         &endProcData,
+                         execData.pipeEndProcDetect.Detach(wxPipe::Read)
+                      );
+
+    execData.pipeEndProcDetect.Close();
+
+
+    // prepare to wait for the child termination: show to the user that we're
+    // busy and refuse all input unless explicitly told otherwise
+    wxBusyCursor bc;
+    wxWindowDisabler *wd = flags & wxEXEC_NODISABLE ? NULL
+                                                    : new wxWindowDisabler;
+
+    // endProcData.pid will be set to 0 from wxHandleProcessTermination() when
+    // the process terminates
+    while ( endProcData.pid != 0 )
+    {
+#if HAS_PIPE_INPUT_STREAM
+        bool idle = true;
+
+        if ( execData.bufOut )
+        {
+            execData.bufOut->Update();
+            idle = false;
+        }
+
+        if ( execData.bufErr )
+        {
+            execData.bufErr->Update();
+            idle = false;
+        }
+
+        // don't consume 100% of the CPU while we're sitting in this
+        // loop
+        if ( idle )
+#endif // HAS_PIPE_INPUT_STREAM
+            wxMilliSleep(1);
+
+        // give the toolkit a chance to call wxHandleProcessTermination() here
+        // and also repaint the GUI and handle other accumulated events
+        wxYield();
+    }
+
+    delete wd;
+
+    return endProcData.exitcode;
+}
+
+#endif //wxUSE_GUI
+