From 4199367e9c1b04ce85c51947f09a10ee54c4f688 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 15 Sep 2003 13:00:34 +0000 Subject: [PATCH] added wxUSE_EXCEPTIONS git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure.in | 139 +++++++++++++++++++++------------------- include/wx/chkconf.h | 8 +++ include/wx/mac/setup0.h | 13 ++++ include/wx/msw/setup0.h | 13 ++++ include/wx/os2/setup0.h | 2 + setup.h.in | 2 + setup.h_vms | 3 + 7 files changed, 113 insertions(+), 67 deletions(-) diff --git a/configure.in b/configure.in index 07da7033ad..e174f2189b 100644 --- a/configure.in +++ b/configure.in @@ -305,7 +305,7 @@ case "${host}" in dnl This strange code is necessary to deal with handling of dnl backslashes by ksh and pdksh's sh variant. ac_save_IFS="$IFS" - IFS="\\" + IFS='\\' ac_TEMP_PATH= for ac_dir in $PATH; do IFS=$ac_save_IFS @@ -379,6 +379,7 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_DMALLOC=no DEFAULT_wxUSE_APPLE_IEEE=no + DEFAULT_wxUSE_EXCEPTIONS=no DEFAULT_wxUSE_LOG=yes DEFAULT_wxUSE_LOGWINDOW=no DEFAULT_wxUSE_LOGGUI=no @@ -557,6 +558,7 @@ else DEFAULT_wxUSE_DMALLOC=no DEFAULT_wxUSE_APPLE_IEEE=yes + DEFAULT_wxUSE_EXCEPTIONS=yes DEFAULT_wxUSE_LOG=yes DEFAULT_wxUSE_LOGWINDOW=yes DEFAULT_wxUSE_LOGGUI=yes @@ -826,45 +828,44 @@ WX_ARG_ENABLE(ftp, [ --enable-ftp use wxFTP (requires wxPr WX_ARG_ENABLE(http, [ --enable-http use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP) WX_ARG_ENABLE(fileproto, [ --enable-fileproto use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE) WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS) -WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes], wxUSE_OLE) +WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes (Win32 only)], wxUSE_OLE) WX_ARG_ENABLE(dataobj, [ --enable-dataobj use data object classes], wxUSE_DATAOBJ) WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC) +dnl please keep the settings below in alphabetical order +WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) +WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION) WX_ARG_ENABLE(cmdline, [ --enable-cmdline use wxCmdLineParser class], wxUSE_CMDLINE_PARSER) WX_ARG_ENABLE(datetime, [ --enable-datetime use wxDateTime class], wxUSE_DATETIME) -WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH) WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER) -WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) -WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER) -WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE) -WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION) WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS) WX_ARG_ENABLE(dynamicloader, [ --enable-dynamicloader use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER) -WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) +WX_ARG_ENABLE(exceptions, [ --enable-exceptions build exception-safe library], wxUSE_EXCEPTIONS) +WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile class], wxUSE_FFILE) +WX_ARG_ENABLE(file, [ --enable-file use wxFile class], wxUSE_FILE) +WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) +WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) +WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) +WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY) WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG) +WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) +WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE) +WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU) +WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER) WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS) -WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE) -WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile classes], wxUSE_FFILE) +WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) +WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH) +WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], wxUSE_TEXTBUFFER) WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE) -WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP) +WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER) WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) -WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (win32 only)], wxUSE_UNICODE_MSLU) +WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE) WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) -WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) -WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM) -WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) -WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZipInputStream], wxUSE_ZIPSTREAM) -WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals and pass them to wxApp::OnFatalException], wxUSE_ON_FATAL_EXCEPTION) -WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER) - -WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE) -WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS) - WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL) WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL) WX_ARG_ENABLE(protocol_http, [ --enable-protocol-http HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP) @@ -5301,19 +5302,26 @@ dnl --------------------------------------------------------------------------- dnl misc options dnl --------------------------------------------------------------------------- -dnl if test "$wxUSE_TREELAYOUT" = "yes"; then -dnl AC_DEFINE(wxUSE_TREELAYOUT) -dnl SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treelay" -dnl fi +dnl please keep the settings below in alphabetical order +if test "$wxUSE_ACCESSIBILITY" = "yes"; then + AC_DEFINE(wxUSE_ACCESSIBILITY) + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access" +fi if test "$wxUSE_DRAGIMAGE" = "yes"; then AC_DEFINE(wxUSE_DRAGIMAGE) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag" fi -if test "$wxUSE_ACCESSIBILITY" = "yes"; then - AC_DEFINE(wxUSE_ACCESSIBILITY) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access" +if test "$wxUSE_EXCEPTIONS" = "yes"; then + AC_DEFINE(wxUSE_EXCEPTIONS) +fi + +USE_HTML=0 +if test "$wxUSE_HTML" = "yes"; then + AC_DEFINE(wxUSE_HTML) + USE_HTML=1 + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox" fi if test "$wxUSE_MENUS" = "yes"; then @@ -5329,27 +5337,20 @@ if test "$wxUSE_MIMETYPE" = "yes"; then AC_DEFINE(wxUSE_MIMETYPE) fi -if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then - AC_DEFINE(wxUSE_SYSTEM_OPTIONS) -if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \ - "$TOOLKIT" = "MOTIF"; then - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar" -fi - -fi - if test "$wxUSE_MINIFRAME" = "yes"; then AC_DEFINE(wxUSE_MINIFRAME) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram" fi -USE_HTML=0 -if test "$wxUSE_HTML" = "yes"; then - AC_DEFINE(wxUSE_HTML) - USE_HTML=1 - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox" +if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then + AC_DEFINE(wxUSE_SYSTEM_OPTIONS) + if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \ + "$TOOLKIT" = "MOTIF"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar" + fi fi + if test "$wxUSE_VALIDATORS" = "yes"; then AC_DEFINE(wxUSE_VALIDATORS) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate" @@ -5359,41 +5360,45 @@ if test "$wxUSE_PALETTE" = "yes" ; then AC_DEFINE(wxUSE_PALETTE) fi -if test "$wxUSE_IMAGE" = "yes" ; then - AC_DEFINE(wxUSE_IMAGE) +if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then + dnl Must be done this late because -lunicows must be before all the other libs + LIBS=" -lunicows $LIBS" fi -if test "$wxUSE_GIF" = "yes" ; then - AC_DEFINE(wxUSE_GIF) -fi +dnl --------------------------------------------------------------------------- +dnl wxImage options +dnl --------------------------------------------------------------------------- -if test "$wxUSE_PCX" = "yes" ; then - AC_DEFINE(wxUSE_PCX) -fi +if test "$wxUSE_IMAGE" = "yes" ; then + AC_DEFINE(wxUSE_IMAGE) -if test "$wxUSE_IFF" = "yes" ; then - AC_DEFINE(wxUSE_IFF) -fi + if test "$wxUSE_GIF" = "yes" ; then + AC_DEFINE(wxUSE_GIF) + fi -if test "$wxUSE_PNM" = "yes" ; then - AC_DEFINE(wxUSE_PNM) -fi + if test "$wxUSE_PCX" = "yes" ; then + AC_DEFINE(wxUSE_PCX) + fi -if test "$wxUSE_XPM" = "yes" ; then - AC_DEFINE(wxUSE_XPM) -fi + if test "$wxUSE_IFF" = "yes" ; then + AC_DEFINE(wxUSE_IFF) + fi -if test "$wxUSE_ICO_CUR" = "yes" ; then - AC_DEFINE(wxUSE_ICO_CUR) -fi + if test "$wxUSE_PNM" = "yes" ; then + AC_DEFINE(wxUSE_PNM) + fi -if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then - dnl Must be done this late because -lunicows must be before all the other libs - LIBS=" -lunicows $LIBS" + if test "$wxUSE_XPM" = "yes" ; then + AC_DEFINE(wxUSE_XPM) + fi + + if test "$wxUSE_ICO_CUR" = "yes" ; then + AC_DEFINE(wxUSE_ICO_CUR) + fi fi dnl --------------------------------------------------------------------------- -dnl common dialog +dnl common dialogs dnl --------------------------------------------------------------------------- if test "$wxUSE_CHOICEDLG" = "yes"; then diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index 2283731933..fe7da61551 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -50,6 +50,14 @@ # endif #endif /* !defined(wxUSE_DYNLIB_CLASS) */ +#ifndef wxUSE_EXCEPTIONS +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_EXCEPTIONS must be defined." +# else +# define wxUSE_EXCEPTIONS 0 +# endif +#endif /* !defined(wxUSE_EXCEPTIONS) */ + #ifndef wxUSE_FILESYSTEM # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_FILESYSTEM must be defined." diff --git a/include/wx/mac/setup0.h b/include/wx/mac/setup0.h index 86101d7218..37dcda793e 100644 --- a/include/wx/mac/setup0.h +++ b/include/wx/mac/setup0.h @@ -182,6 +182,19 @@ // global features // ---------------------------------------------------------------------------- +// Compile library in exception-safe mode? If set to 1, the library will try to +// behave correctly in presence of exceptions (even though it still will not +// use the exceptions itself) and notify the user code about any unhandled +// exceptions. If set to 0, propagation of the exceptions through the library +// code will lead to undefined behaviour -- but the code itself will be +// slightly smaller and faster. +// +// Default is 1 +// +// Recommended setting: depends on whether you intend to use C++ exceptions +// in your own code (1 if you do, 0 if you don't) +#define wxUSE_EXCEPTIONS 1 + // Support for message/error logging. This includes wxLogXXX() functions and // wxLog and derived classes. Don't set this to 0 unless you really know what // you are doing. diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index 29a5185929..b3e126f614 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -181,6 +181,19 @@ // global features // ---------------------------------------------------------------------------- +// Compile library in exception-safe mode? If set to 1, the library will try to +// behave correctly in presence of exceptions (even though it still will not +// use the exceptions itself) and notify the user code about any unhandled +// exceptions. If set to 0, propagation of the exceptions through the library +// code will lead to undefined behaviour -- but the code itself will be +// slightly smaller and faster. +// +// Default is 1 +// +// Recommended setting: depends on whether you intend to use C++ exceptions +// in your own code (1 if you do, 0 if you don't) +#define wxUSE_EXCEPTIONS 1 + // Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI // // Default is 0 diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h index acdfde8279..05f9f45b40 100644 --- a/include/wx/os2/setup0.h +++ b/include/wx/os2/setup0.h @@ -16,6 +16,8 @@ // global settings // ---------------------------------------------------------------------------- +#define wxUSE_EXCEPTIONS 1 + // define this to 1 if you want icons to behave as bitmaps #define wxICON_IS_BITMAP 0 diff --git a/setup.h.in b/setup.h.in index 25699e6f3c..a2ad505a07 100644 --- a/setup.h.in +++ b/setup.h.in @@ -569,6 +569,8 @@ */ #define wxUSE_TEXTFILE 0 +#define wxUSE_EXCEPTIONS 0 + /* * Use log classes and logging functions */ diff --git a/setup.h_vms b/setup.h_vms index 0530b8a7b4..5c3b90e444 100644 --- a/setup.h_vms +++ b/setup.h_vms @@ -582,6 +582,9 @@ * Use wxTextFile class */ #define wxUSE_TEXTFILE 1 + +#define wxUSE_EXCEPTIONS 0 + /* * Use log classes and logging functions */ -- 2.45.2