From 3fb26cf22906da9163ba13d55644342aa3df7c8b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 13 Apr 2008 02:09:52 +0000 Subject: [PATCH] allow predefining wxNO_XXX_LIB symbols to avoid implicitly linking with the corresponding library when using msvc/wx/setup.h git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/doxygen/mainpages/const_cpp.h | 30 +++++++++++++++++++ include/msvc/wx/setup.h | 46 ++++++++++++++++++------------ 2 files changed, 57 insertions(+), 19 deletions(-) diff --git a/docs/doxygen/mainpages/const_cpp.h b/docs/doxygen/mainpages/const_cpp.h index 90cdaf6414..544db2ce1c 100644 --- a/docs/doxygen/mainpages/const_cpp.h +++ b/docs/doxygen/mainpages/const_cpp.h @@ -23,6 +23,7 @@ always tested using @ifdef_ and not @if_. @li @ref page_cppconst_hardware @li @ref page_cppconst_compiler @li @ref page_cppconst_featuretests +@li @ref page_cppconst_msvc_setup_h @li @ref page_cppconst_miscellaneous
@@ -199,6 +200,35 @@ Currently the following symbols exist: +@section page_cppconst_msvc_setup_h Libraries selection for MSVC setup.h + +Microsoft Visual C++ users may use the special @c wx/setup.h file for this +compiler in @c include/msvc subdirectory. This file implicitly links in all the +wxWidgets libraries using MSVC-specific pragmas which usually is much more +convenient than manually specifying the libraries list in all of the project +configurations. However sometimes linking with all the libraries is not +desirable, for example because some of them were not built and this is where +the symbols in this section can be helpful: defining them allows to not link +with the corresponding library. The following symbols are honoured: + - wxNO_ADV_LIB + - wxNO_AUI_LIB + - wxNO_HTML_LIB + - wxNO_MEDIA_LIB + - wxNO_NET_LIB + - wxNO_QA_LIB + - wxNO_RICHTEXT_LIB + - wxNO_XML_LIB + - wxNO_REGEX_LIB + - wxNO_EXPAT_LIB + - wxNO_JPEG_LIB + - wxNO_PNG_LIB + - wxNO_TIFF_LIB + - wxNO_ZLIB_LIB + +Notice that the base library is always included and the core is always included +for the GUI applications (i.e. those which don't define @c wxUSE_GUI as 0). + + @section page_cppconst_miscellaneous Miscellaneous @beginDefList diff --git a/include/msvc/wx/setup.h b/include/msvc/wx/setup.h index 5a42e004ee..136fe6bbaa 100644 --- a/include/msvc/wx/setup.h +++ b/include/msvc/wx/setup.h @@ -72,53 +72,61 @@ #define wx3RD_PARTY_LIB_NAME_U(name) "wx" name wxSUFFIX_STR #pragma comment(lib, wxWX_LIB_NAME("base", "")) - #pragma comment(lib, wxBASE_LIB_NAME("net")) - #pragma comment(lib, wxBASE_LIB_NAME("xml")) - #if wxUSE_REGEX + + #ifndef wxNO_NET_LIB + #pragma comment(lib, wxBASE_LIB_NAME("net")) + #endif + #ifndef wxNO_XML_LIB + #pragma comment(lib, wxBASE_LIB_NAME("xml")) + #endif + #if wxUSE_REGEX && !defined(wxNO_REGEX_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME_U("regex")) #endif #if wxUSE_GUI - #if wxUSE_XML + #if wxUSE_XML && !defined(wxNO_EXPAT_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("expat")) #endif - #if wxUSE_LIBJPEG + #if wxUSE_LIBJPEG && !defined(wxNO_JPEG_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("jpeg")) #endif - #if wxUSE_LIBPNG + #if wxUSE_LIBPNG && !defined(wxNO_PNG_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("png")) #endif - #if wxUSE_LIBTIFF + #if wxUSE_LIBTIFF && !defined(wxNO_TIFF_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("tiff")) #endif - #if wxUSE_ZLIB + #if wxUSE_ZLIB && !defined(wxNO_ZLIB_LIB) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("zlib")) #endif - #pragma comment(lib, wxMSW_LIB_NAME("adv")) #pragma comment(lib, wxMSW_LIB_NAME("core")) - #pragma comment(lib, wxMSW_LIB_NAME("html")) - #if wxUSE_GLCANVAS + + #ifndef wxNO_ADV_LIB + #pragma comment(lib, wxMSW_LIB_NAME("adv")) + #endif + + #ifndef wxNO_HTML_LIB + #pragma comment(lib, wxMSW_LIB_NAME("html")) + #endif + #if wxUSE_GLCANVAS && !defined(wxNO_GL_LIB) #pragma comment(lib, wxMSW_LIB_NAME("gl")) #endif - #if wxUSE_DEBUGREPORT + #if wxUSE_DEBUGREPORT && !defined(wxNO_QA_LIB) #pragma comment(lib, wxMSW_LIB_NAME("qa")) #endif - #if wxUSE_XRC + #if wxUSE_XRC && !defined(wxNO_XRC_LIB) #pragma comment(lib, wxMSW_LIB_NAME("xrc")) #endif - #if wxUSE_AUI + #if wxUSE_AUI && !defined(wxNO_AUI_LIB) #pragma comment(lib, wxMSW_LIB_NAME("aui")) #endif - #if wxUSE_RICHTEXT + #if wxUSE_RICHTEXT && !defined(wxNO_RICHTEXT_LIB) #pragma comment(lib, wxMSW_LIB_NAME("richtext")) #endif - #if wxUSE_MEDIACTRL + #if wxUSE_MEDIACTRL && !defined(wxNO_MEDIA_LIB) #pragma comment(lib, wxMSW_LIB_NAME("media")) #endif - #if wxUSE_ODBC - #pragma comment(lib, wxMSW_LIB_NAME("odbc")) - #endif #endif // wxUSE_GUI #else #error "This file should only be included when using Microsoft Visual C++" -- 2.45.2