addressed sooner.
-Unarchiving
-===========
+Table of Contents:
+ - Installation
+ - Building wxWidgets
+ - Configuring the Build
+ - Building Applications Using wxWidgets
+
+
+Installation
+============
Please simply uncompress the .zip file manually into any directory.
However we advise avoiding using directories with spaces in their
with makefiles and other command-line tools.
-Configuration
-=============
-
In the majority of cases, you don't need to change the default
library build configuration. If you wish to change some of the build
options you need to edit the include/wx/msw/setup.h file enabling or
each of the build configurations which allows to have different
build options for different configurations too.
+See "Configuring the Build" section for more information.
-Compilation
-===========
+
+Building wxWidgets
+==================
The following sections explain how to compile wxWidgets with each supported
-compiler. Search for one of Microsoft/Borland/Watcom/Symantec/Metrowerks/
-Cygwin/Mingw32 to quickly locate the instructions for your compiler.
+compiler, see the "Building Applications" section about the instructions for
+building your application using wxWidgets.
+
+Search for one of Microsoft/Borland/Watcom/Symantec/Cygwin/Mingw32 keywords
+to quickly locate the instructions for your compiler. Notice that the primary
+compilers for wxWidgets under MSW are Microsoft Visual C++ and GNU g++, other
+compilers are more rarely tested and might not work so please consider using
+one of these two if possible.
All makefiles and project are located in build\msw directory.
for __WATCOM__).
-Metrowerks CodeWarrior Compilation
-----------------------------------------------------------------
-
-** NOTE: We don't use Metrowerks compiler any more and so depend on
-** your contributions to keep it up to date. It is possible that
-** the project files mentioned below are out of date due to recently
-** added files, please add them manually if you get linking errors.
-** The authoritative list of files is in build/bakefiles/files.bkl
-
-1. CodeWarrior Pro 7 project files in XML format are already
- included in wxMSW-2.8.x.zip and the setup version.
-
-2. Review the file include\wx\msw\setup.h (or include\wx\msw\setup0.h if
- you are working from the SVN version) to make sure the settings reflect
- what you want. If you aren't sure, leave it alone and go with the
- default settings. A few notes:
- - Don't use wxUSE_DEBUG_NEW_ALWAYS: it doesn't mix well with MSL
- - wxUSE_GLOBAL_MEMORY_OPERATORS works, but memory leak reports
- will be rather confusing due to interactions with the MSL ANSI
- and runtime libs.
-
-3. The project file to build the Win32 wxWidgets libraries relies on the
- Batch File Runner plug-in. This plug-in is not installed as part of
- a normal CW7 installation. However, you can find this plug-in on the
- CodeWarrior Reference CD, in the Thrill Seekers folder; it's called the
- "Batch File Post Linker".
-
-4. If you choose not to install the Batch File Runner plug-in, then you
- need to do the following by hand:
- (1) Create the directories lib\cw7msw\include\wx and copy the file
- include\wx\msw\setup.h (or include\wx\msw\setup0.h if you are
- working from the SVN version) to lib\cw7msw\include\wx\setup.h
- (2) Create the directories lib\cw7mswd\include\wx and copy the file
- include\wx\msw\setup.h (or include\wx\msw\setup0.h if you are
- working from the SVN version) to lib\cw7mswd\include\wx\setup.h
-
-5. Import src\wxWidgetsW7.xml to create the project file wxWidgetsW7.mcp.
- Store this project file in directory src. You may get warnings about
- not being able to find certain project paths; ignore these warnings, the
- appropriate paths will be created during the build by the Batch File Runner.
-
-6. Choose the wxlib Win32 debug or wxlib Win32 Release target and build. You
- will get some warnings about hidden virtual functions, illegal conversions
- from const pointers to pointers, etc., all of which you can safely ignore.
- ***Note: if you get errors that the compiler can't find "wx/setup.h", just
- stop the build and build again. These errors occur because sometimes the
- compiler starts doing its thing before the copying of setup.h has completed.
-
-7. The following libraries will be produced depending on chosen
- target:
- - wx_x86.lib ANSI Release (static)
- - wx_x86_d.lib ANSI Debug (static)
-
-8. Sorry, I haven't had time yet to create and test Unicode or DLL versions.
- Volunteers for this are welcome (as neither DLLs nor Unicode builds are
- big priorities for me ;).
-
-9. CodeWarrior Pro7 project files (in XML format) are also provided for some
- of the samples. In particular, there are project files for the minimal,
- controls, dialogs, dnd, nd docview samples. You can use these project
- files as templates for the other samples and for your own projects.
- - For example, to make a project file for the "grid" sample,
- just copy the project file for the "minimal" sample, minimalW7.mcp
- (made by importing minimalW7.xml into CodeWarrior), into the
- sample/grid directory, calling it gridW7.mcp. Open
- newgridW7.mcp and revise the project by deleting the files
- minimal.rc and minimal.cpp and adding the files griddemo.rc and
- griddemo.cpp. Build and run....
-
-
Cygwin/MinGW Compilation
----------------------------------------------------------------
enabled (without CFG, both of them would be put into same directory and there
would be conflicts between the files).
-General Notes
-=================================================================
-
-- Debugging: under Windows 95, debugging output isn't output in
- the same way that it is under NT or Windows 3.1.
- Please see DebugView available from http://www.sysinternals.com.
+Building Applications Using wxWidgets
+=====================================
+
+NB: The makefiles and project files provided with wxWidgets samples show which
+ flags should be used when building applications using wxWidgets so in case
+ of a problem, e.g. if the instructions here are out of date, you can always
+ simply copy a makefile or project file from samples\minimal or some other
+ sample and adapt it to your application.
+
+Independently of the compiler and make/IDE you are using you must do the
+following to use wxWidgets:
+
+* Add $WXWIN/include to the
+ - compiler
+ - resource compiler
+ include paths.
+* Define the following symbols for the preprocessor:
+ - __WXMSW__ to ensure you use the correct wxWidgets port.
+ - _UNICODE unless you want to use deprecated ANSI build of wxWidgets.
+ - NDEBUG if you want to build in release mode, i.e. disable asserts.
+ - WXUSINGDLL if you are using DLL build of wxWidgets.
+* Add $WXWIN/lib/prefix_lib-or-dll to the libraries path. The prefix depends
+ on the compiler, by default it is "vc" for MSVC, "gcc" for g++ and so on.
+* Add the list of libraries to link with to the linker input. The exact list
+ depends on which libraries you use and whether you built wxWidgets in
+ monolithic or default multlib mode and basically should include all the
+ relevant libraries from the directory above, e.g. "wxmsw29ud_core.lib
+ wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib
+ wxexpatd.lib" for a debug build of an application using the core library only
+ (all wxWidgets applications use the base library).
+
+
+Microsoft Visual C++ users can simplify the linker setup by prepending the
+directory $WXWIN/msvc to the include path (it must come before $WXWIN/include
+directory!) and omitting the last step: the required libraries will be linked
+in automatically using the "#pragma comment(lib)" feature of this compiler.