replace wxAddProcessCallback() with wxAppTraits::AddProcessCallback() to fix linking problems in Unix ports; also reduce code duplication between GUI and base versions making src/unix/baseunix.cpp unnecessary any longer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
113
Makefile.in
113
Makefile.in
@@ -729,7 +729,6 @@ ALL_BASE_SOURCES = \
|
|||||||
src/common/selectdispatcher.cpp \
|
src/common/selectdispatcher.cpp \
|
||||||
src/unix/epolldispatcher.cpp \
|
src/unix/epolldispatcher.cpp \
|
||||||
src/unix/appunix.cpp \
|
src/unix/appunix.cpp \
|
||||||
src/unix/baseunix.cpp \
|
|
||||||
src/unix/evtloopunix.cpp \
|
src/unix/evtloopunix.cpp \
|
||||||
src/unix/dlunix.cpp \
|
src/unix/dlunix.cpp \
|
||||||
src/unix/snglinst.cpp \
|
src/unix/snglinst.cpp \
|
||||||
@@ -3550,7 +3549,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3588,7 +3586,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3609,7 +3606,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3630,7 +3626,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3660,7 +3655,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3673,7 +3667,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -3694,7 +3687,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS = \
|
|||||||
monodll_selectdispatcher.o \
|
monodll_selectdispatcher.o \
|
||||||
monodll_epolldispatcher.o \
|
monodll_epolldispatcher.o \
|
||||||
monodll_appunix.o \
|
monodll_appunix.o \
|
||||||
monodll_baseunix.o \
|
|
||||||
monodll_evtloopunix.o \
|
monodll_evtloopunix.o \
|
||||||
monodll_dlunix.o \
|
monodll_dlunix.o \
|
||||||
monodll_snglinst.o \
|
monodll_snglinst.o \
|
||||||
@@ -5456,7 +5448,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5494,7 +5485,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5515,7 +5505,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5536,7 +5525,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5566,7 +5554,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5579,7 +5566,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -5600,7 +5586,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_1 = \
|
|||||||
monolib_selectdispatcher.o \
|
monolib_selectdispatcher.o \
|
||||||
monolib_epolldispatcher.o \
|
monolib_epolldispatcher.o \
|
||||||
monolib_appunix.o \
|
monolib_appunix.o \
|
||||||
monolib_baseunix.o \
|
|
||||||
monolib_evtloopunix.o \
|
monolib_evtloopunix.o \
|
||||||
monolib_dlunix.o \
|
monolib_dlunix.o \
|
||||||
monolib_snglinst.o \
|
monolib_snglinst.o \
|
||||||
@@ -7399,7 +7384,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7437,7 +7421,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7458,7 +7441,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7479,7 +7461,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7509,7 +7490,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7522,7 +7502,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7543,7 +7522,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_2 = \
|
|||||||
basedll_selectdispatcher.o \
|
basedll_selectdispatcher.o \
|
||||||
basedll_epolldispatcher.o \
|
basedll_epolldispatcher.o \
|
||||||
basedll_appunix.o \
|
basedll_appunix.o \
|
||||||
basedll_baseunix.o \
|
|
||||||
basedll_evtloopunix.o \
|
basedll_evtloopunix.o \
|
||||||
basedll_dlunix.o \
|
basedll_dlunix.o \
|
||||||
basedll_snglinst.o \
|
basedll_snglinst.o \
|
||||||
@@ -7625,7 +7603,6 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7663,7 +7640,6 @@ COND_TOOLKIT____BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7684,7 +7660,6 @@ COND_TOOLKIT_COCOA___BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7705,7 +7680,6 @@ COND_TOOLKIT_GTK___BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7735,7 +7709,6 @@ COND_TOOLKIT_MAC___BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7748,7 +7721,6 @@ COND_TOOLKIT_MOTIF___BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.o \
|
baselib_snglinst.o \
|
||||||
@@ -7769,7 +7741,6 @@ COND_TOOLKIT_X11___BASE_MACOSX_SRC_OBJECTS_3 = \
|
|||||||
baselib_selectdispatcher.o \
|
baselib_selectdispatcher.o \
|
||||||
baselib_epolldispatcher.o \
|
baselib_epolldispatcher.o \
|
||||||
baselib_appunix.o \
|
baselib_appunix.o \
|
||||||
baselib_baseunix.o \
|
|
||||||
baselib_evtloopunix.o \
|
baselib_evtloopunix.o \
|
||||||
baselib_dlunix.o \
|
baselib_dlunix.o \
|
||||||
baselib_snglinst.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@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_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@monodll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONODLL_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
|
@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@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_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@monolib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(MONOLIB_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
|
@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@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_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@basedll_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASEDLL_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
|
@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@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_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@baselib_evtloopunix.o: $(srcdir)/src/unix/evtloopunix.cpp $(BASELIB_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
|
@COND_PLATFORM_UNIX_1@ $(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/evtloopunix.cpp
|
||||||
|
|
||||||
|
@@ -60,7 +60,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
src/common/selectdispatcher.cpp
|
src/common/selectdispatcher.cpp
|
||||||
src/unix/epolldispatcher.cpp
|
src/unix/epolldispatcher.cpp
|
||||||
src/unix/appunix.cpp
|
src/unix/appunix.cpp
|
||||||
src/unix/baseunix.cpp
|
|
||||||
src/unix/evtloopunix.cpp
|
src/unix/evtloopunix.cpp
|
||||||
src/unix/dlunix.cpp
|
src/unix/dlunix.cpp
|
||||||
src/unix/snglinst.cpp
|
src/unix/snglinst.cpp
|
||||||
|
@@ -1,75 +1,39 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "wx_vc7_wxregex.vcproj", "{7A1A5354-6DB4-53F1-B75C-FE909D796167}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "wx_vc7_wxregex.vcproj", "{7A1A5354-6DB4-53F1-B75C-FE909D796167}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "wx_vc7_wxzlib.vcproj", "{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "wx_vc7_wxzlib.vcproj", "{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "wx_vc7_wxpng.vcproj", "{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "wx_vc7_wxpng.vcproj", "{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "wx_vc7_wxjpeg.vcproj", "{3CA6563C-F480-52D4-AF05-D641E25A5DF2}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "wx_vc7_wxjpeg.vcproj", "{3CA6563C-F480-52D4-AF05-D641E25A5DF2}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "wx_vc7_wxtiff.vcproj", "{456F9EAD-4A96-59BD-A39A-75DAA25D517B}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "wx_vc7_wxtiff.vcproj", "{456F9EAD-4A96-59BD-A39A-75DAA25D517B}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "wx_vc7_wxexpat.vcproj", "{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "wx_vc7_wxexpat.vcproj", "{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxscintilla", "wx_vc7_wxscintilla.vcproj", "{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxscintilla", "wx_vc7_wxscintilla.vcproj", "{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "wx_vc7_base.vcproj", "{79F1691B-08C4-55BB-985E-FDDB0BC8753C}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "wx_vc7_base.vcproj", "{79F1691B-08C4-55BB-985E-FDDB0BC8753C}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "wx_vc7_net.vcproj", "{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "wx_vc7_net.vcproj", "{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "wx_vc7_core.vcproj", "{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "wx_vc7_core.vcproj", "{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "wx_vc7_adv.vcproj", "{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "wx_vc7_adv.vcproj", "{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "wx_vc7_media.vcproj", "{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "wx_vc7_media.vcproj", "{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "wx_vc7_html.vcproj", "{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "wx_vc7_html.vcproj", "{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "wx_vc7_qa.vcproj", "{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "wx_vc7_qa.vcproj", "{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "wx_vc7_xml.vcproj", "{B036100A-CEA0-5466-BE27-7E5B3687CAB8}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "wx_vc7_xml.vcproj", "{B036100A-CEA0-5466-BE27-7E5B3687CAB8}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "wx_vc7_xrc.vcproj", "{40DB525F-1EFF-56A4-8301-3AAD661135F3}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "wx_vc7_xrc.vcproj", "{40DB525F-1EFF-56A4-8301-3AAD661135F3}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "wx_vc7_aui.vcproj", "{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "wx_vc7_aui.vcproj", "{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "wx_vc7_richtext.vcproj", "{52F16F53-E13D-55CA-AD64-ACB0274B0704}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "wx_vc7_richtext.vcproj", "{52F16F53-E13D-55CA-AD64-ACB0274B0704}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stc", "wx_vc7_stc.vcproj", "{4B498696-42F2-5547-B159-87E4CAF436C1}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stc", "wx_vc7_stc.vcproj", "{4B498696-42F2-5547-B159-87E4CAF436C1}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
@@ -77,346 +41,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stc", "wx_vc7_stc.vcproj",
|
|||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "wx_vc7_gl.vcproj", "{407F0D6F-2B2D-5774-B9D3-FA972A663072}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "wx_vc7_gl.vcproj", "{407F0D6F-2B2D-5774-B9D3-FA972A663072}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
Debug = Debug
|
|
||||||
DLL Debug = DLL Debug
|
|
||||||
DLL Release = DLL Release
|
|
||||||
DLL Universal Debug = DLL Universal Debug
|
|
||||||
DLL Universal Release = DLL Universal Release
|
|
||||||
Release = Release
|
|
||||||
Universal Debug = Universal Debug
|
|
||||||
Universal Release = Universal Release
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Debug.Build.0 = Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Release.ActiveCfg = Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Release.Build.0 = Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{7A1A5354-6DB4-53F1-B75C-FE909D796167}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Debug.Build.0 = Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Release.ActiveCfg = Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Release.Build.0 = Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{DDD86D36-A4F6-5A54-AE2C-144B3594E1CE}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Debug.Build.0 = Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Release.ActiveCfg = Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Release.Build.0 = Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{EE6AD15D-E891-5E03-AB6C-6F98ACE69A3C}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Debug.Build.0 = Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Release.ActiveCfg = Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Release.Build.0 = Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{3CA6563C-F480-52D4-AF05-D641E25A5DF2}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Debug.Build.0 = Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Release.ActiveCfg = Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Release.Build.0 = Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{456F9EAD-4A96-59BD-A39A-75DAA25D517B}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Debug.Build.0 = Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Release.ActiveCfg = Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Release.Build.0 = Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{AF27ABC5-1AB2-55D0-8E7D-239C0176530E}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Debug.Build.0 = Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Release.ActiveCfg = Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Release.Build.0 = Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{A00328D4-6B01-5DF5-828E-AC2CB8B83CF6}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Debug.Build.0 = Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Release.ActiveCfg = Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Release.Build.0 = Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{79F1691B-08C4-55BB-985E-FDDB0BC8753C}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Debug.Build.0 = Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Release.ActiveCfg = Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Release.Build.0 = Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{48EEE04D-6B25-5A11-8A4A-B84C3C1146EC}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Debug.Build.0 = Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Release.ActiveCfg = Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Release.Build.0 = Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{552E2EB7-F6EA-548D-A6CC-FCB0B246EE7F}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Debug.Build.0 = Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Release.ActiveCfg = Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Release.Build.0 = Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{35F2F245-4EF0-5FFB-AD23-E1D7DAC39F0E}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Debug.Build.0 = Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Release.ActiveCfg = Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Release.Build.0 = Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{CD68AE51-BA90-5367-BB7D-F013E8E42AAF}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Debug.Build.0 = Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Release.ActiveCfg = Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Release.Build.0 = Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{C4CBFDA4-B78E-5C7D-A5EC-B20CF69DB256}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Debug.Build.0 = Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Release.ActiveCfg = Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Release.Build.0 = Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{5ADF90A8-DA5C-55B3-88F1-94C0A0E9C76D}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Debug.Build.0 = Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Release.ActiveCfg = Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Release.Build.0 = Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{B036100A-CEA0-5466-BE27-7E5B3687CAB8}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Debug.Build.0 = Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Release.ActiveCfg = Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Release.Build.0 = Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{40DB525F-1EFF-56A4-8301-3AAD661135F3}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Debug.Build.0 = Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Release.ActiveCfg = Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Release.Build.0 = Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{0937D36F-9EAC-5D3D-B990-44B3F99BFC34}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Debug.Build.0 = Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Release.ActiveCfg = Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Release.Build.0 = Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{52F16F53-E13D-55CA-AD64-ACB0274B0704}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Debug.Build.0 = Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Release.ActiveCfg = Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Release.Build.0 = Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{4B498696-42F2-5547-B159-87E4CAF436C1}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Debug.Build.0 = Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Debug.Build.0 = DLL Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Release.ActiveCfg = DLL Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Release.Build.0 = DLL Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Debug.ActiveCfg = DLL Universal Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Debug.Build.0 = DLL Universal Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Release.ActiveCfg = DLL Universal Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.DLL Universal Release.Build.0 = DLL Universal Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Release.ActiveCfg = Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Release.Build.0 = Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Debug.ActiveCfg = Universal Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Debug.Build.0 = Universal Debug|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Release.ActiveCfg = Universal Release|Win32
|
|
||||||
{407F0D6F-2B2D-5774-B9D3-FA972A663072}.Universal Release.Build.0 = Universal Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
DLL Universal Release|Win32 = DLL Universal Release|Win32
|
DLL Universal Release|Win32 = DLL Universal Release|Win32
|
||||||
DLL Universal Debug|Win32 = DLL Universal Debug|Win32
|
DLL Universal Debug|Win32 = DLL Universal Debug|Win32
|
||||||
@@ -753,3 +379,4 @@ Global
|
|||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
||||||
|
@@ -1534,7 +1534,7 @@
|
|||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\gauge95.cpp"
|
RelativePath="..\..\src\msw\gauge.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Universal Release|Win32"
|
Name="DLL Universal Release|Win32"
|
||||||
@@ -1766,6 +1766,26 @@
|
|||||||
ExcludedFromBuild="true"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\msw\nativewin.cpp"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="DLL Universal Release|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="DLL Universal Debug|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Universal Release|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Universal Debug|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\notebook.cpp"
|
RelativePath="..\..\src\msw\notebook.cpp"
|
||||||
>
|
>
|
||||||
@@ -1894,7 +1914,7 @@
|
|||||||
RelativePath="..\..\src\msw\settings.cpp"
|
RelativePath="..\..\src\msw\settings.cpp"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\slider95.cpp"
|
RelativePath="..\..\src\msw\slider.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Universal Release|Win32"
|
Name="DLL Universal Release|Win32"
|
||||||
@@ -1993,26 +2013,6 @@
|
|||||||
ExcludedFromBuild="true"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\src\msw\statbr95.cpp"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="DLL Universal Release|Win32"
|
|
||||||
ExcludedFromBuild="true"
|
|
||||||
/>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="DLL Universal Debug|Win32"
|
|
||||||
ExcludedFromBuild="true"
|
|
||||||
/>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Universal Release|Win32"
|
|
||||||
ExcludedFromBuild="true"
|
|
||||||
/>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Universal Debug|Win32"
|
|
||||||
ExcludedFromBuild="true"
|
|
||||||
/>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\statline.cpp"
|
RelativePath="..\..\src\msw\statline.cpp"
|
||||||
>
|
>
|
||||||
@@ -2054,7 +2054,7 @@
|
|||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\tabctrl.cpp"
|
RelativePath="..\..\src\msw\statusbar.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Universal Release|Win32"
|
Name="DLL Universal Release|Win32"
|
||||||
@@ -2074,7 +2074,7 @@
|
|||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\tbar95.cpp"
|
RelativePath="..\..\src\msw\tabctrl.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Universal Release|Win32"
|
Name="DLL Universal Release|Win32"
|
||||||
@@ -2153,6 +2153,26 @@
|
|||||||
ExcludedFromBuild="true"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\msw\toolbar.cpp"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="DLL Universal Release|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="DLL Universal Debug|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Universal Release|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Universal Debug|Win32"
|
||||||
|
ExcludedFromBuild="true"
|
||||||
|
/>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\msw\tooltip.cpp"
|
RelativePath="..\..\src\msw\tooltip.cpp"
|
||||||
/>
|
/>
|
||||||
@@ -3603,7 +3623,7 @@
|
|||||||
RelativePath="..\..\include\wx\msw\frame.h"
|
RelativePath="..\..\include\wx\msw\frame.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\gauge95.h"
|
RelativePath="..\..\include\wx\msw\gauge.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\gdiimage.h"
|
RelativePath="..\..\include\wx\msw\gdiimage.h"
|
||||||
@@ -3800,7 +3820,7 @@
|
|||||||
RelativePath="..\..\include\wx\msw\setup0.h"
|
RelativePath="..\..\include\wx\msw\setup0.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\slider95.h"
|
RelativePath="..\..\include\wx\msw\slider.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\sound.h"
|
RelativePath="..\..\include\wx\msw\sound.h"
|
||||||
@@ -3817,24 +3837,21 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\statbox.h"
|
RelativePath="..\..\include\wx\msw\statbox.h"
|
||||||
/>
|
/>
|
||||||
<File
|
|
||||||
RelativePath="..\..\include\wx\msw\statbr95.h"
|
|
||||||
/>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\statline.h"
|
RelativePath="..\..\include\wx\msw\statline.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\stattext.h"
|
RelativePath="..\..\include\wx\msw\stattext.h"
|
||||||
/>
|
/>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\include\wx\msw\statusbar.h"
|
||||||
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\tabctrl.h"
|
RelativePath="..\..\include\wx\msw\tabctrl.h"
|
||||||
/>
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\taskbar.h"
|
RelativePath="..\..\include\wx\msw\taskbar.h"
|
||||||
/>
|
/>
|
||||||
<File
|
|
||||||
RelativePath="..\..\include\wx\msw\tbar95.h"
|
|
||||||
/>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\textctrl.h"
|
RelativePath="..\..\include\wx\msw\textctrl.h"
|
||||||
/>
|
/>
|
||||||
@@ -3844,6 +3861,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\tglbtn.h"
|
RelativePath="..\..\include\wx\msw\tglbtn.h"
|
||||||
/>
|
/>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\include\wx\msw\toolbar.h"
|
||||||
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msw\tooltip.h"
|
RelativePath="..\..\include\wx\msw\tooltip.h"
|
||||||
/>
|
/>
|
||||||
@@ -4584,6 +4604,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\msgdlg.h"
|
RelativePath="..\..\include\wx\msgdlg.h"
|
||||||
/>
|
/>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\include\wx\nativewin.h"
|
||||||
|
/>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\include\wx\nonownedwnd.h"
|
RelativePath="..\..\include\wx\nonownedwnd.h"
|
||||||
/>
|
/>
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#ifndef _WX_UNIX_APPTBASE_H_
|
#ifndef _WX_UNIX_APPTBASE_H_
|
||||||
#define _WX_UNIX_APPTBASE_H_
|
#define _WX_UNIX_APPTBASE_H_
|
||||||
|
|
||||||
|
struct wxEndProcessData;
|
||||||
struct wxExecuteData;
|
struct wxExecuteData;
|
||||||
class wxPipe;
|
class wxPipe;
|
||||||
|
|
||||||
@@ -41,7 +42,20 @@ public:
|
|||||||
|
|
||||||
// wait for the process termination, return whatever wxExecute() must
|
// wait for the process termination, return whatever wxExecute() must
|
||||||
// return
|
// 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
|
// wxThread helpers
|
||||||
|
@@ -22,7 +22,6 @@ public:
|
|||||||
#if wxUSE_CONSOLE_EVENTLOOP
|
#if wxUSE_CONSOLE_EVENTLOOP
|
||||||
virtual wxEventLoopBase *CreateEventLoop();
|
virtual wxEventLoopBase *CreateEventLoop();
|
||||||
#endif // wxUSE_CONSOLE_EVENTLOOP
|
#endif // wxUSE_CONSOLE_EVENTLOOP
|
||||||
virtual int WaitForChild(wxExecuteData& execData);
|
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
||||||
#endif
|
#endif
|
||||||
@@ -35,6 +34,9 @@ class WXDLLEXPORT wxGUIAppTraits : public wxGUIAppTraitsBase
|
|||||||
public:
|
public:
|
||||||
virtual wxEventLoopBase *CreateEventLoop();
|
virtual wxEventLoopBase *CreateEventLoop();
|
||||||
virtual int WaitForChild(wxExecuteData& execData);
|
virtual int WaitForChild(wxExecuteData& execData);
|
||||||
|
#if defined(__WXGTK__) || defined(__WXMOTIF__)
|
||||||
|
virtual int AddProcessCallback(wxEndProcessData *data, int fd);
|
||||||
|
#endif
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -15,17 +15,6 @@
|
|||||||
class WXDLLIMPEXP_FWD_BASE wxProcess;
|
class WXDLLIMPEXP_FWD_BASE wxProcess;
|
||||||
class wxStreamTempInputBuffer;
|
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
|
// 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
|
// executed when the process terminates, if pid < 0, the execution is
|
||||||
// synchronous and the caller (wxExecute) frees the data
|
// synchronous and the caller (wxExecute) frees the data
|
||||||
@@ -35,10 +24,6 @@ struct wxEndProcessData
|
|||||||
int tag; // port dependent value
|
int tag; // port dependent value
|
||||||
wxProcess *process; // if !NULL: notified on process termination
|
wxProcess *process; // if !NULL: notified on process termination
|
||||||
int exitcode; // the exit code
|
int exitcode; // the exit code
|
||||||
|
|
||||||
#ifdef wxHAS_GENERIC_PROCESS_CALLBACK
|
|
||||||
wxEndProcessFDIOHandler *fdioHandler;
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// struct in which information is passed from wxExecute() to wxAppTraits
|
// 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)
|
// callback function and is common to all ports (src/unix/utilsunx.cpp)
|
||||||
extern WXDLLIMPEXP_BASE void wxHandleProcessTermination(wxEndProcessData *proc_data);
|
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
|
#endif // _WX_UNIX_EXECUTE_H
|
||||||
|
@@ -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,
|
int tag = gdk_input_add(fd,
|
||||||
GDK_INPUT_READ,
|
GDK_INPUT_READ,
|
||||||
|
@@ -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,
|
int tag = gdk_input_add(fd,
|
||||||
GDK_INPUT_READ,
|
GDK_INPUT_READ,
|
||||||
@@ -173,11 +173,15 @@ int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
|
|||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_TIMER
|
||||||
|
|
||||||
wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
|
wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
|
||||||
{
|
{
|
||||||
return new wxGTKTimerImpl(timer);
|
return new wxGTKTimerImpl(timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_TIMER
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxPlatformInfo-related
|
// wxPlatformInfo-related
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -24,216 +24,6 @@
|
|||||||
|
|
||||||
#include <sys/wait.h>
|
#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>
|
#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.
|
wxCocoa using the CFSocket/CFRunLoop API which is available to both.
|
||||||
Takes advantage of the fact that sockets on UNIX are just regular
|
Takes advantage of the fact that sockets on UNIX are just regular
|
||||||
file descriptors and thus even a non-socket file descriptor can
|
file descriptors and thus even a non-socket file descriptor can
|
||||||
apparently be used with CFSocket so long as you only tell CFSocket
|
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.
|
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;
|
static int s_last_tag = 0;
|
||||||
CFSocketContext context =
|
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
|
// 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.
|
// put it in because it's already compiled for wxCocoa and wxMac GUI lib.
|
||||||
#if wxUSE_GUI
|
|
||||||
|
|
||||||
#if wxUSE_STDPATHS
|
#if wxUSE_STDPATHS
|
||||||
static wxStandardPathsCF gs_stdPaths;
|
static wxStandardPathsCF gs_stdPaths;
|
||||||
wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
|
wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
|
||||||
@@ -364,5 +152,3 @@ wxStandardPathsBase& wxGUIAppTraits::GetStandardPaths()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // wxUSE_GUI
|
|
||||||
|
|
||||||
|
@@ -164,21 +164,3 @@ wxMouseState wxGetMouseState()
|
|||||||
return ms;
|
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
|
|
||||||
|
@@ -96,7 +96,7 @@ static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid),
|
|||||||
XtRemoveInput(*id);
|
XtRemoveInput(*id);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
|
int wxGUIAppTraits::AddProcessCallback(wxEndProcessData *proc_data, int fd)
|
||||||
{
|
{
|
||||||
XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(),
|
XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(),
|
||||||
fd,
|
fd,
|
||||||
|
@@ -30,7 +30,6 @@
|
|||||||
#include "wx/utils.h"
|
#include "wx/utils.h"
|
||||||
#endif //WX_PRECOMP
|
#endif //WX_PRECOMP
|
||||||
|
|
||||||
#include "wx/apptrait.h"
|
|
||||||
#include "wx/unix/execute.h"
|
#include "wx/unix/execute.h"
|
||||||
#include "wx/evtloop.h"
|
#include "wx/evtloop.h"
|
||||||
#include "wx/gsocket.h"
|
#include "wx/gsocket.h"
|
||||||
@@ -45,45 +44,8 @@
|
|||||||
// wxConsoleAppTraits implementation
|
// 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
|
#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
|
#endif // wxUSE_TIMER
|
||||||
|
|
||||||
// Note: wxConsoleAppTraits::CreateEventLoop() is defined in evtloopunix.cpp!
|
// Note: wxConsoleAppTraits::CreateEventLoop() is defined in evtloopunix.cpp!
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
#include "wx/event.h"
|
#include "wx/event.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "wx/apptrait.h"
|
||||||
#include "wx/longlong.h"
|
#include "wx/longlong.h"
|
||||||
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
@@ -256,5 +257,10 @@ wxUsecClock_t wxGetLocalTimeUsec()
|
|||||||
return wxGetLocalTimeMillis() * 1000L;
|
return wxGetLocalTimeMillis() * 1000L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
|
||||||
|
{
|
||||||
|
return new wxUnixTimerImpl(timer);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_TIMER
|
#endif // wxUSE_TIMER
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include "wx/wfstream.h"
|
#include "wx/wfstream.h"
|
||||||
|
|
||||||
|
#include "wx/private/fdiodispatcher.h"
|
||||||
#include "wx/unix/execute.h"
|
#include "wx/unix/execute.h"
|
||||||
#include "wx/unix/private.h"
|
#include "wx/unix/private.h"
|
||||||
|
|
||||||
@@ -1220,30 +1221,10 @@ bool wxHandleFatalExceptions(bool doit)
|
|||||||
|
|
||||||
#endif // wxUSE_ON_FATAL_EXCEPTION
|
#endif // wxUSE_ON_FATAL_EXCEPTION
|
||||||
|
|
||||||
#endif // wxUSE_BASE
|
|
||||||
|
|
||||||
#ifdef __DARWIN__
|
|
||||||
#include <sys/errno.h>
|
|
||||||
#endif
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxExecute support
|
// 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)
|
bool wxAppTraits::CreateEndProcessPipe(wxExecuteData& execData)
|
||||||
{
|
{
|
||||||
return execData.pipeEndProcDetect.Create();
|
return execData.pipeEndProcDetect.Create();
|
||||||
@@ -1260,262 +1241,153 @@ void wxAppTraits::DetachWriteFDOfEndProcessPipe(wxExecuteData& execData)
|
|||||||
execData.pipeEndProcDetect.Close();
|
execData.pipeEndProcDetect.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // !Darwin
|
int wxAppTraits::AddProcessCallback(wxEndProcessData *data, int fd)
|
||||||
|
|
||||||
bool wxAppTraits::CreateEndProcessPipe(wxExecuteData& WXUNUSED(execData))
|
|
||||||
{
|
{
|
||||||
return true;
|
// define a custom handler processing only the closure of the descriptor
|
||||||
}
|
struct wxEndProcessFDIOHandler : public wxFDIOHandler
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
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 )
|
|
||||||
{
|
{
|
||||||
// we may have process for capturing the program output, but it's
|
wxEndProcessFDIOHandler(wxEndProcessData *data, int fd)
|
||||||
// not used in wxEndProcessData in the case of sync execution
|
: m_data(data), m_fd(fd)
|
||||||
endProcData->process = NULL;
|
{}
|
||||||
|
|
||||||
// sync execution: indicate it by negating the pid
|
virtual void OnReadWaiting()
|
||||||
endProcData->pid = -execData.pid;
|
{ wxFAIL_MSG("this isn't supposed to happen"); }
|
||||||
|
virtual void OnWriteWaiting()
|
||||||
|
{ wxFAIL_MSG("this isn't supposed to happen"); }
|
||||||
|
|
||||||
|
virtual void OnExceptionWaiting()
|
||||||
|
{
|
||||||
|
const int pid = m_data->pid > 0 ? m_data->pid : -(m_data->pid);
|
||||||
|
int status = 0;
|
||||||
|
|
||||||
|
// has the process really terminated?
|
||||||
|
int rc = waitpid(pid, &status, WNOHANG);
|
||||||
|
if ( rc == 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);
|
||||||
|
}
|
||||||
|
else if ( rc == -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"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// set exit code to -1 if something bad happened
|
||||||
|
m_data->exitcode = rc > 0 && WIFEXITED(status) ? WEXITSTATUS(status)
|
||||||
|
: -1;
|
||||||
|
|
||||||
|
wxLogTrace("exec",
|
||||||
|
"Child process (PID %d) terminated with exit code %d",
|
||||||
|
pid, m_data->exitcode);
|
||||||
|
|
||||||
|
// child exited, end waiting
|
||||||
|
wxFDIODispatcher::Get()->UnregisterFD(m_fd);
|
||||||
|
close(m_fd);
|
||||||
|
|
||||||
|
wxHandleProcessTermination(m_data);
|
||||||
|
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxEndProcessData * const m_data;
|
||||||
|
const int m_fd;
|
||||||
|
};
|
||||||
|
|
||||||
|
wxFDIODispatcher::Get()->RegisterFD
|
||||||
|
(
|
||||||
|
fd,
|
||||||
|
new wxEndProcessFDIOHandler(data, fd),
|
||||||
|
wxFDIO_EXCEPTION
|
||||||
|
);
|
||||||
|
return fd; // unused, but return something unique for the tag
|
||||||
|
}
|
||||||
|
|
||||||
|
int wxAppTraits::WaitForChild(wxExecuteData& execData)
|
||||||
|
{
|
||||||
|
if ( execData.flags & wxEXEC_SYNC )
|
||||||
|
{
|
||||||
|
// just block waiting for the child to exit
|
||||||
|
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 )
|
||||||
|
{
|
||||||
|
result = waitpid(execData.pid, &status, 0);
|
||||||
|
}
|
||||||
|
#endif // __DARWIN__
|
||||||
|
|
||||||
|
if ( result == -1 )
|
||||||
|
{
|
||||||
|
wxLogLastError("waitpid");
|
||||||
|
}
|
||||||
|
else // child terminated
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( result == execData.pid,
|
||||||
|
"unexpected waitpid() return value" );
|
||||||
|
|
||||||
|
if ( WIFEXITED(status) )
|
||||||
|
{
|
||||||
|
return WEXITSTATUS(status);
|
||||||
|
}
|
||||||
|
else // abnormal termination?
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( WIFSIGNALED(status),
|
||||||
|
"unexpected child wait status" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
wxLogSysError(_("Waiting for subprocess termination failed"));
|
||||||
|
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
else
|
else // asynchronous execution
|
||||||
{
|
{
|
||||||
// async execution, nothing special to do -- caller will be
|
wxEndProcessData *endProcData = new wxEndProcessData;
|
||||||
// notified about the process termination if process != NULL, endProcData
|
|
||||||
// will be deleted in GTK_EndProcessDetector
|
|
||||||
endProcData->process = execData.process;
|
endProcData->process = execData.process;
|
||||||
endProcData->pid = execData.pid;
|
endProcData->pid = execData.pid;
|
||||||
}
|
endProcData->tag = AddProcessCallback
|
||||||
|
|
||||||
|
|
||||||
if ( !(flags & wxEXEC_NOEVENTS) )
|
|
||||||
{
|
|
||||||
#if USE_OLD_DARWIN_END_PROCESS_DETECT
|
|
||||||
endProcData->tag = wxAddProcessCallbackForPid(endProcData, execData.pid);
|
|
||||||
#else
|
|
||||||
endProcData->tag = wxAddProcessCallback
|
|
||||||
(
|
(
|
||||||
endProcData,
|
endProcData,
|
||||||
execData.pipeEndProcDetect.Detach(wxPipe::Read)
|
execData.pipeEndProcDetect.Detach(wxPipe::Read)
|
||||||
);
|
);
|
||||||
|
|
||||||
execData.pipeEndProcDetect.Close();
|
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 )
|
|
||||||
{
|
|
||||||
// just block waiting for the child to exit
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
result = waitpid(execData.pid, &status, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( result == -1 )
|
|
||||||
{
|
|
||||||
wxLogLastError(_T("waitpid"));
|
|
||||||
exitcode = -1;
|
|
||||||
}
|
|
||||||
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;
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
||||||
// don't consume 100% of the CPU while we're sitting in this
|
|
||||||
// loop
|
|
||||||
if ( idle )
|
|
||||||
wxMilliSleep(1);
|
|
||||||
|
|
||||||
// give GTK+ a chance to call GTK_EndProcessDetector here and
|
|
||||||
// also repaint the GUI
|
|
||||||
wxYield();
|
|
||||||
}
|
|
||||||
|
|
||||||
exitcode = endProcData->exitcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
delete wd;
|
|
||||||
delete endProcData;
|
|
||||||
|
|
||||||
return exitcode;
|
|
||||||
}
|
|
||||||
else // async execution
|
|
||||||
{
|
|
||||||
return execData.pid;
|
return execData.pid;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //wxUSE_GUI
|
|
||||||
|
|
||||||
#if wxUSE_BASE
|
|
||||||
|
|
||||||
#ifdef wxHAS_GENERIC_PROCESS_CALLBACK
|
|
||||||
struct wxEndProcessFDIOHandler : public wxFDIOHandler
|
|
||||||
{
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
int pid = (m_data->pid > 0) ? m_data->pid : -(m_data->pid);
|
|
||||||
int status = 0;
|
|
||||||
|
|
||||||
// has the process really terminated?
|
|
||||||
int rc = waitpid(pid, &status, WNOHANG);
|
|
||||||
if ( rc == 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 %i) still alive, even though notification was received that it terminated.", pid);
|
|
||||||
}
|
|
||||||
else if ( rc == -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"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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);
|
|
||||||
|
|
||||||
m_data->fdioHandler = NULL;
|
|
||||||
wxHandleProcessTermination(m_data);
|
|
||||||
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxEndProcessData *m_data;
|
|
||||||
int m_fd;
|
|
||||||
};
|
|
||||||
|
|
||||||
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)
|
void wxHandleProcessTermination(wxEndProcessData *proc_data)
|
||||||
{
|
{
|
||||||
// notify user about termination if required
|
// notify user about termination if required
|
||||||
@@ -1527,13 +1399,91 @@ void wxHandleProcessTermination(wxEndProcessData *proc_data)
|
|||||||
// clean up
|
// clean up
|
||||||
if ( proc_data->pid > 0 )
|
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
|
// let wxExecute() know that the process has terminated
|
||||||
proc_data->pid = 0;
|
proc_data->pid = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_BASE
|
#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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user