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
This commit is contained in:
Vadim Zeitlin
2008-04-13 02:09:52 +00:00
parent e0257cc505
commit 3fb26cf229
2 changed files with 57 additions and 19 deletions

View File

@@ -23,6 +23,7 @@ always tested using @ifdef_ and not @if_.
@li @ref page_cppconst_hardware @li @ref page_cppconst_hardware
@li @ref page_cppconst_compiler @li @ref page_cppconst_compiler
@li @ref page_cppconst_featuretests @li @ref page_cppconst_featuretests
@li @ref page_cppconst_msvc_setup_h
@li @ref page_cppconst_miscellaneous @li @ref page_cppconst_miscellaneous
<hr> <hr>
@@ -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 @section page_cppconst_miscellaneous Miscellaneous
@beginDefList @beginDefList

View File

@@ -72,53 +72,61 @@
#define wx3RD_PARTY_LIB_NAME_U(name) "wx" name wxSUFFIX_STR #define wx3RD_PARTY_LIB_NAME_U(name) "wx" name wxSUFFIX_STR
#pragma comment(lib, wxWX_LIB_NAME("base", "")) #pragma comment(lib, wxWX_LIB_NAME("base", ""))
#pragma comment(lib, wxBASE_LIB_NAME("net"))
#pragma comment(lib, wxBASE_LIB_NAME("xml")) #ifndef wxNO_NET_LIB
#if wxUSE_REGEX #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")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME_U("regex"))
#endif #endif
#if wxUSE_GUI #if wxUSE_GUI
#if wxUSE_XML #if wxUSE_XML && !defined(wxNO_EXPAT_LIB)
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("expat")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("expat"))
#endif #endif
#if wxUSE_LIBJPEG #if wxUSE_LIBJPEG && !defined(wxNO_JPEG_LIB)
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("jpeg")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("jpeg"))
#endif #endif
#if wxUSE_LIBPNG #if wxUSE_LIBPNG && !defined(wxNO_PNG_LIB)
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("png")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("png"))
#endif #endif
#if wxUSE_LIBTIFF #if wxUSE_LIBTIFF && !defined(wxNO_TIFF_LIB)
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("tiff")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("tiff"))
#endif #endif
#if wxUSE_ZLIB #if wxUSE_ZLIB && !defined(wxNO_ZLIB_LIB)
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("zlib")) #pragma comment(lib, wx3RD_PARTY_LIB_NAME("zlib"))
#endif #endif
#pragma comment(lib, wxMSW_LIB_NAME("adv"))
#pragma comment(lib, wxMSW_LIB_NAME("core")) #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")) #pragma comment(lib, wxMSW_LIB_NAME("gl"))
#endif #endif
#if wxUSE_DEBUGREPORT #if wxUSE_DEBUGREPORT && !defined(wxNO_QA_LIB)
#pragma comment(lib, wxMSW_LIB_NAME("qa")) #pragma comment(lib, wxMSW_LIB_NAME("qa"))
#endif #endif
#if wxUSE_XRC #if wxUSE_XRC && !defined(wxNO_XRC_LIB)
#pragma comment(lib, wxMSW_LIB_NAME("xrc")) #pragma comment(lib, wxMSW_LIB_NAME("xrc"))
#endif #endif
#if wxUSE_AUI #if wxUSE_AUI && !defined(wxNO_AUI_LIB)
#pragma comment(lib, wxMSW_LIB_NAME("aui")) #pragma comment(lib, wxMSW_LIB_NAME("aui"))
#endif #endif
#if wxUSE_RICHTEXT #if wxUSE_RICHTEXT && !defined(wxNO_RICHTEXT_LIB)
#pragma comment(lib, wxMSW_LIB_NAME("richtext")) #pragma comment(lib, wxMSW_LIB_NAME("richtext"))
#endif #endif
#if wxUSE_MEDIACTRL #if wxUSE_MEDIACTRL && !defined(wxNO_MEDIA_LIB)
#pragma comment(lib, wxMSW_LIB_NAME("media")) #pragma comment(lib, wxMSW_LIB_NAME("media"))
#endif #endif
#if wxUSE_ODBC
#pragma comment(lib, wxMSW_LIB_NAME("odbc"))
#endif
#endif // wxUSE_GUI #endif // wxUSE_GUI
#else #else
#error "This file should only be included when using Microsoft Visual C++" #error "This file should only be included when using Microsoft Visual C++"