From 1b5e3649e51ca84e0ac7eb71a6bf86217197172e Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 3 Oct 2018 18:11:54 +0200 Subject: [PATCH 1/5] Integrate MSW, OS X and iOS build instructions into doxygen Make build instructions available in doxygen but keep the old folder structure. --- docs/doxygen/Doxyfile | 5 +- docs/doxygen/mainpages/platdetails.h | 7 +- docs/ios/install.md | 27 ++++ docs/ios/readme.txt | 29 ---- docs/msw/{gtk.txt => gtk.md} | 10 +- docs/msw/{install.txt => install.md} | 198 +++++++++++++++------------ docs/msw/msys2-gtk.md | 124 +++++++++++++++++ docs/msw/msys2-gtk.txt | 111 --------------- docs/msw/msys2-msw.md | 101 ++++++++++++++ docs/msw/msys2-msw.txt | 92 ------------- docs/msw/readme.txt | 2 +- docs/msw/{winxp.txt => winxp.md} | 48 ++++--- docs/osx/{install.txt => install.md} | 73 +++++----- docs/osx/readme.txt | 4 +- 14 files changed, 438 insertions(+), 393 deletions(-) create mode 100644 docs/ios/install.md rename docs/msw/{gtk.txt => gtk.md} (91%) rename docs/msw/{install.txt => install.md} (84%) create mode 100644 docs/msw/msys2-gtk.md delete mode 100644 docs/msw/msys2-gtk.txt create mode 100644 docs/msw/msys2-msw.md delete mode 100644 docs/msw/msys2-msw.txt rename docs/msw/{winxp.txt => winxp.md} (66%) rename docs/osx/{install.txt => install.md} (70%) diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index bef0fc9a9d..717e859b79 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -100,7 +100,7 @@ ALIASES += appearance_brief{2}="\htmlonly
\endhtmlonly\n\1\htmlonly\endhtmlonly\n\image html generic/\2.png\n\htmlonly
\endhtmlonly" # aliases for the creation of "named member groups" -# USAGE: the first argument must not contain spaces and be a unique identifier +# USAGE: the first argument must not contain spaces and be a unique identifier # of the member group for the class being documented; # the second argument is the member group name and can contain spaces # See wxString as an usage example. @@ -292,6 +292,9 @@ WARN_LOGFILE = doxygen.log INPUT = mainpages \ groups \ overviews \ + ../ios \ + ../msw \ + ../osx \ ../../interface INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.h *.md diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h index f4beee8625..ec95b1e25c 100644 --- a/docs/doxygen/mainpages/platdetails.h +++ b/docs/doxygen/mainpages/platdetails.h @@ -62,8 +62,7 @@ distribution. wxOSX/Cocoa is the port of wxWidgets for the OS X platform. It requires OS X 10.7 or later and fully supports 64 bit builds. -For further information, please see the files in @c docs/osx in the -distribution. +@subpage plat_osx_install "Build and Install Instructions" @@ -105,7 +104,7 @@ This port can be compiled with several compilers including Microsoft Studio VC++ 2003 or later, Borland 5.5, MinGW32, Cygwin as well as cross-compilation with a Linux-hosted MinGW32 tool chain. -For further information, please see the files in docs/msw in the distribution. +@subpage plat_msw_install "Build and Install Instructions" @subsection page_port_wxmsw_resources Resources and Application Icon @@ -175,7 +174,7 @@ wxiOS is a port of wxWidgets using Cocoa touch libraries for iOS. It is very basic in it current form, but is included for further improvements and very simple applications. It requires iOS 9 or later and fully supports 64 bit builds. -For further information, please see the files in docs/ios in the distribution. +@subpage plat_ios_install "Build Instructions" @section page_port_nativedocs Native Toolkit Documentation diff --git a/docs/ios/install.md b/docs/ios/install.md new file mode 100644 index 0000000000..9892c59e4d --- /dev/null +++ b/docs/ios/install.md @@ -0,0 +1,27 @@ +Building wxWidgets for iOS {#plat_ios_install} +---------------------------- + +wxiOS is far from a full supported port, but can be used +as base for simple applications and future improvements. + +It requires Xcode with iOS SDK 9.0 or later. Xcode is available +for free in the OS X app store. + +To build wxiOS you should use Xcode to open the minimal samples +Xcode project file located at: + + samples/minimal/minimal_iphone.xcodeproj + +That project files includes wxiphone.xcodeproj so you just need +to hit run in order to see the minimal sample running in the +simulator. + +The library can also be build via configure/make: + + mkdir build_ios + cd build_ios + ../configure --with-osx_iphone --enable-monolithic \ + --with-macosx-version-min=8.0 --disable-shared \ + --enable-macosx_arch=i386 \ + --with-macosx-sdk=$(xcrun --sdk iphonesimulator --show-sdk-path) + make diff --git a/docs/ios/readme.txt b/docs/ios/readme.txt index 573db30676..928ef715ef 100644 --- a/docs/ios/readme.txt +++ b/docs/ios/readme.txt @@ -4,35 +4,6 @@ wxiOS is far from a full supported port, but can be used as base for simple applications and future improvements. -It requires Xcode with iOS SDK 9.0 or later. Xcode is available -for free in the OS X app store. - -More info about the wxWidgets project (including all the -other ports and version of wxWidgets) can be found at the -main wxWidgets homepage at: - - https://www.wxwidgets.org/ - -To build wxiOS you should use Xcode to open the minimal samples -Xcode project file located at: - - samples/minimal/minimal_iphone.xcodeproj - -That project files includes wxiphone.xcodeproj so you just need -to hit run in order to see the minimal sample running in the -simulator. - -The library can also be build via configure/make: - - mkdir build_ios - cd build_ios - ../configure --with-osx_iphone --enable-monolithic \ - --with-macosx-version-min=8.0 --disable-shared \ - --enable-macosx_arch=i386 \ - --with-macosx-sdk=$(xcrun --sdk iphonesimulator --show-sdk-path) - make - - Please send problems concerning installation, feature requests, bug reports or comments to the wxWidgets users list. These can be found at https://www.wxwidgets.org/support/mailing-lists/ diff --git a/docs/msw/gtk.txt b/docs/msw/gtk.md similarity index 91% rename from docs/msw/gtk.txt rename to docs/msw/gtk.md index 6756ea61ec..631884bb18 100644 --- a/docs/msw/gtk.txt +++ b/docs/msw/gtk.md @@ -1,4 +1,4 @@ -Building wxGTK port with Win32 GDK backend +Building wxGTK port with Win32 GDK backend {#plat_msw_gtk} ------------------------------------------ GTK+ widget toolkit has multiple GDK backends and one of them is Win32. @@ -11,14 +11,15 @@ These notes don't consider building wxGTK with X11 backend under Windows. Building steps: 1. wxGTK/Win32 build is similar to wxMSW one and you should have configured -and be able to build wxWidgets as described in docs/msw/install.txt +and be able to build wxWidgets as described in @ref plat_msw_install 2. wxGTK/Win32 is disabled by default in wxWidgets, you need to enable it in bakefiles manually. Apply following patch manually or using Cygwin: - patch -p0 < docs/msw/gtkfix.patch + patch -p0 < docs/msw/gtkfix.patch Regenerate required make/project files: + cd build\bakefiles bakefile_gen @@ -31,6 +32,7 @@ in the C:\gtk directory. 4. Building 4.1 If you are using Visual C++ project files you need to setup GTK+ 2 include directories + C:\gtk\lib\include\gtk-2.0 C:\gtk\lib\include\glib-2.0 C:\gtk\lib\include\cairo @@ -44,7 +46,7 @@ and library directory C:\gtk\lib\ - See http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.90).aspx +See http://msdn.microsoft.com/en-us/library/t9az1d21(v=vs.90).aspx Open solution file in build\msw directory, select "GTK+ Debug" solution configuration and build the solution. To be sure that everything is as expected diff --git a/docs/msw/install.txt b/docs/msw/install.md similarity index 84% rename from docs/msw/install.txt rename to docs/msw/install.md index d3a69b8302..6e6e5f1146 100644 --- a/docs/msw/install.txt +++ b/docs/msw/install.md @@ -1,37 +1,28 @@ - Installing wxWidgets for Windows - -------------------------------- +Installing wxWidgets for Windows {#plat_msw_install} +-------------------------------- This is wxWidgets for Microsoft Windows (XP, Vista, 7, 8, 10, etc) including both 32 bit and 64 bit versions. +[TOC] -Table of Contents: - - Installation - - Building wxWidgets - - Configuring the Build - - Building Applications Using wxWidgets - - -Installation +Installation {#msw_install} ============ If you are using one of the supported compilers, you can download the pre-built in binaries from - https://github.com/wxWidgets/wxWidgets/releases/v3.1.1 +https://github.com/wxWidgets/wxWidgets/releases/v3.1.1 In this case, just uncompress the binaries archive under any directory -and skip to "Building Applications Using wxWidgets" part. +and skip to [Building Applications Using wxWidgets](#msw_build_apps) part. Otherwise, or if you want to build a configuration of the library different from the default one, you need to build the library from sources before using it. -If you use CMake, please see - - https://docs.wxwidgets.org/trunk/overview_cmake.html - -for building wxWidgets using it. +If you use CMake, please see @ref overview_cmake for +building wxWidgets using it. The first step, which you may have already performed, unless you are reading this file online, is to download the source archive and @@ -46,22 +37,22 @@ actually required, this makes using the library more convenient and this environment variable is used in the examples below. NB: If you checked your sources from version control repository and - didn't obtain them from a release file, you also need to copy - include/wx/msw/setup0.h to include/wx/msw/setup.h and to remember - to update the latter whenever the former changes, otherwise you - will get compilation errors if any new symbols are added to - setup0.h file in the repository. +didn't obtain them from a release file, you also need to copy +`include/wx/msw/setup0.h` to `include/wx/msw/setup.h` and to remember +to update the latter whenever the former changes, otherwise you +will get compilation errors if any new symbols are added to +setup0.h file in the repository. - If you have no intention of modifying setup.h, you may avoid this - problem by creating a symbolic link to setup0.h instead of making - a copy of it using mklink, from an admin command prompt: +If you have no intention of modifying setup.h, you may avoid this +problem by creating a symbolic link to setup0.h instead of making +a copy of it using mklink, from an admin command prompt: - cd %WXWIN%\include\wx\msw\ - mklink setup.h setup0.h + cd %WXWIN%\include\wx\msw\ + mklink setup.h setup0.h -Building wxWidgets +Building wxWidgets {#msw_build} ================== The following sections explain how to compile wxWidgets with each supported @@ -70,7 +61,7 @@ building your application using wxWidgets. All makefiles and project are located in build\msw directory. -Microsoft Visual C++ Compilation +Microsoft Visual C++ Compilation {#msw_build_msvs} ---------------------------------------------------------------- * From command line using the provided makefiles: @@ -79,7 +70,7 @@ Microsoft Visual C++ Compilation must have been installed to the "Start" menu or the "Start" screen by MSVS installation. -1. Change directory to %WXWIN%\build\msw and type +1. Change directory to \%WXWIN\%\build\msw and type > nmake /f makefile.vc @@ -99,7 +90,7 @@ Microsoft Visual C++ Compilation See "Configuring the Build" for more information about the additional parameters that can be specified on the command line. -2. To verify your build, change the directory to %WXWIN%\samples\minimal and +2. To verify your build, change the directory to \%WXWIN\%\samples\minimal and run the same nmake command (with the same parameters there), this should create a working minimal wxWidgets sample. @@ -120,7 +111,7 @@ are not always built in the correct order, and this may result in link errors. Simply do the build again, up to 3 times, to fix this. -Special notes for Visual Studio 2010+: +### Special notes for Visual Studio 2010+ For Visual Studio 2010+ solutions it is possible to customize the build by creating a wx_local.props file in the build\msw directory which is used, if it @@ -132,8 +123,8 @@ make the file is to copy wx_setup.props to wx_local.props and then edit local. For example, if you are building wxWidgets libraries using multiple versions of Visual Studio you could change wxCompilerPrefix to include the toolset: -- vc -+ vc$(PlatformToolsetVersion) + - vc + + vc$(PlatformToolsetVersion) Following that example if you are using Visual Studio 2013 and open wx_vc12.sln it will build using the "vc120" prefix for the build directories @@ -147,28 +138,31 @@ updated with it. For example the version information in wx_setup.props could change and the information in your wx_local.props would be outdated. It is your responsibility to monitor for such situations. -Improve debugging for Visual Studio 2012+: +### Improve debugging for Visual Studio 2012+ Debug visualizers for Visual Studio 2012+ are provided which makes inspecting various wxWidgets classes easier to view while debugging. To use them: -1. Open the folder %WXWIN%\misc\msvc -2. Open the folder %USERPROFILE%\My Documents\Visual Studio 2012\Visualizers\ +1. Open the folder \%WXWIN\%\misc\msvc +2. Open the folder \%USERPROFILE\%\My Documents\Visual Studio 2012\Visualizers\ (or the corresponding location for newer versions, e.g. ...2013\Visualizers) 3. Copy wxWidgets.natvis and autoexp.inc 4. For Visual Studio 2013+ additionally copy wxWidgets.2013.natvis -Cygwin/MinGW Compilation +Cygwin/MinGW Compilation {#msw_build_cygwin} ---------------------------------------------------------------- wxWidgets supports Cygwin, MinGW, MinGW-w64 and TDM-GCC tool chains under Windows. They can be downloaded from: - http://www.cygwin.com/ - http://www.mingw.org/ - http://mingw-w64.sourceforge.net/ - http://tdm-gcc.tdragon.net/ +http://www.cygwin.com/ + +http://www.mingw.org/ + +http://mingw-w64.sourceforge.net/ + +http://tdm-gcc.tdragon.net/ respectively. Please retrieve and install the latest version of your preferred tool chain by following the instructions provided by these packages. Notice @@ -189,7 +183,7 @@ All of these tool chains can be used either with Unix-like configure+make build process (preferred) or with the provided makefile.gcc makefiles without using configure: -* Using configure +### Using configure This method works in exactly the same way as under Unix systems, including OS X, and requires a Unix-like environment to work, i.e. @@ -231,7 +225,7 @@ either MSYS or Cygwin. so this step can usually be omitted. -* Using plain makefiles: +### Using plain makefiles: NOTE: The makefile.gcc makefiles are for compilation under MinGW using Windows command interpreter (command.com/cmd.exe), they won't work @@ -240,7 +234,7 @@ NOTE: The makefile.gcc makefiles are for compilation under MinGW using 0. Open DOS command line window (cmd.exe, *not* Bash sh.exe). -1. Change directory to %WXWIN%\build\msw and type +1. Change directory to \%WXWIN\%\build\msw and type > mingw32-make -f makefile.gcc @@ -263,7 +257,7 @@ NOTE: The makefile.gcc makefiles are for compilation under MinGW using -Borland C++ Compilation +Borland C++ Compilation {#msw_build_borland} ---------------------------------------------------------------- WARNING: Borland instructions are out of date, please send us your @@ -278,7 +272,7 @@ debugger is very good. To avoid linker errors you will need to add -DSHARED=1 to the makefile line for the library The version 5.6 included in Borland C++ Builder 2006 works as well after the -following small change: please remove the test for __WINDOWS__ from line 88 +following small change: please remove the test for `__WINDOWS__` from line 88 of the file BCCDIR\include\stl\_threads.h. Compiling using the makefiles: @@ -302,7 +296,7 @@ debug mode, edit makefile.bcc and change /aa to /Tpe in link commands. Using the Debugger and IDE in BDS or Turbo Explorer --------------------------------------------------- -Doubleclick / open %WXWIN%\samples\minimal\borland.bdsproj. The current version +Doubleclick / open \%WXWIN\%\samples\minimal\borland.bdsproj. The current version is to be used with a dynamic build of wxWidgets-made by running make -f Makefile.bcc -DBUILD=debug -DSHARED=1 in wxWidgets\build\msw. You also need the wxWidgets\lib\bcc_dll @@ -324,16 +318,16 @@ Compiling using the IDE files for Borland C++ 5.0 and using CBuilder IDE In all of your wxWidgets applications, your source code should include the following preprocessor directive: -#ifdef __BORLANDC__ -#pragma hdrstop -#endif + #ifdef __BORLANDC__ + #pragma hdrstop + #endif (check the samples -- e.g., \wx2\samples\minimal\minimal.cpp -- for more details) -Configuring the Build +Configuring the Build {#msw_build_config} ================================================================ NOTE: If you use configure to build the library with Cygwin/MinGW, the @@ -344,7 +338,7 @@ Library configuration ---------------------------------------------------------------- While it is never necessary to do it, you may want to change some of -the options in the %WXWIN%\include\wx\msw\setup.h file before building +the options in the \%WXWIN\%\\include\\wx\\msw\\setup.h file before building wxWidgets. This file is heavily commented, please read it and enable or disable the features you would like to compile wxWidgets with[out]. @@ -381,17 +375,20 @@ depending on the compiler used. The full list of the build settings follows: -BUILD=release +* BUILD=release + Builds release version of the library. It differs from default 'debug' in lack of appended 'd' in name of library and uses the release CRT libraries instead of debug ones. Notice that even release builds do include debug information by default, see DEBUG_FLAG for more information about it. -SHARED=1 +* SHARED=1 + Build shared libraries (DLLs). By default, DLLs are not built (SHARED=0). -UNICODE=0 +* UNICODE=0 + To completely disable Unicode support (default is UNICODE=1). It should not be necessary to do this. @@ -399,54 +396,62 @@ UNICODE=0 Unicode build) and the directory where the library and setup.h are stored (ditto). -WXUNIV=1 +* WXUNIV=1 + Build wxUniversal instead of native wxMSW -MONOLITHIC=1 +* MONOLITHIC=1 + Starting with version 2.5.1, wxWidgets has the ability to be built as several smaller libraries instead of single big one as used to be the case in 2.4 and older versions. This is called "multilib build" and is the default behaviour of makefiles. You can still build single library ("monolithic build") by setting MONOLITHIC variable to 1. -USE_GUI=0 +* USE_GUI=0 + Disable building GUI parts of the library, build only wxBase components used by console applications. Note that if you leave USE_GUI=1 then both wxBase and GUI libraries are built. -USE_$(LIBRARY)=0 +* USE_$(LIBRARY)=0 + Do not build the corresponding library (all libraries are built by default). Library which can be disabled in this way are: AUI, HTML, MEDIA, GL (the option name is USE_OPENGL for this one), PROPGRID, QA, RIBBON, RICHTEXT, STC, WEBVIEW, XRC. -RUNTIME_LIBS=static +* RUNTIME_LIBS=static + Links static version of C and C++ runtime libraries into the executable, so that the program does not depend on DLLs provided with the compiler (e.g. Visual C++'s msvcrt.dll or Borland's cc3250mt.dll). Caution: Do not use static runtime libraries when building DLL (SHARED=1)! -DEBUG_FLAG=0 -DEBUG_FLAG=1 -DEBUG_FLAG=2 +* DEBUG_FLAG=0 +* DEBUG_FLAG=1 +* DEBUG_FLAG=2 + Specifies the level of debug support in wxWidgets. Notice that this is independent from both BUILD and DEBUG_INFO options. By default always set to 1 meaning that debug support is enabled: asserts are compiled into the code (they are inactive by default in release builds of the application but can be enabled), wxLogDebug() and wxLogTrace() are available - and __WXDEBUG__ is defined. Setting it to 0 completely disables all + and `__WXDEBUG__` is defined. Setting it to 0 completely disables all debugging code in wxWidgets while setting it to 2 enables even the time consuming assertions and checks which are deemed to be unsuitable for production environment. -DEBUG_INFO=0 -DEBUG_INFO=1 +* DEBUG_INFO=0 +* DEBUG_INFO=1 + This option affects whether debugging information is generated. If omitted or set to 'default' its value is determined the value of the BUILD option. -DEBUG_RUNTIME_LIBS=0 -DEBUG_RUNTIME_LIBS=1 +* DEBUG_RUNTIME_LIBS=0 +* DEBUG_RUNTIME_LIBS=1 + (VC++ only.) If set to 1, msvcrtd.dll is used, if to 0, msvcrt.dll is used. By default msvcrtd.dll is used only if the executable contains debug info and msvcrt.dll if it doesn't. It is sometimes @@ -455,11 +460,13 @@ DEBUG_RUNTIME_LIBS=1 usable .pdb files with debug information) and this setting makes it possible. -TARGET_CPU=X64|ARM64|IA64 +* TARGET_CPU=X64|ARM64|IA64 + (VC++ only.) Set this variable to build for x86_64 systems. If unset, x86 build is performed. -VENDOR= +* VENDOR=\ + Set this to a short string identifying your company if you are planning to distribute wxWidgets DLLs with your application. Default value is 'custom'. This string is included as part of DLL name. wxWidgets DLLs contain compiler @@ -468,72 +475,74 @@ VENDOR= default settings. If you set VENDOR=mycorp, the name will change to wxmsw311u_core_vc_mycorp.dll. -CFG= +* CFG=\ + Sets configuration name so that you can have multiple wxWidgets builds with different setup.h settings coexisting in same tree. The value of this option is appended to the build directories names. This is useful for building the library in some non-default configuration, - e.g. you could change wxUSE_STL to 1 in %WXWIN%\include\wx\msw\setup.h and + e.g. you could change wxUSE_STL to 1 in \%WXWIN\%\include\wx\msw\setup.h and then build with "CFG=-stl". Alternatively, you could build with e.g. "RUNTIME_LIBS=static CFG=-mt" when using MSVC. -COMPILER_PREFIX= +* COMPILER_PREFIX=\ + If you build with multiple versions of the same compiler, you can put their outputs into directories like "vc6_lib", "vc8_lib" etc. instead of "vc_lib" by setting this variable to e.g. "vc6". This is merely a convenience variable, you can achieve the same effect (but different directory names) with the CFG option. -CFLAGS -CXXFLAGS -CPPFLAGS -LDFLAGS +* CFLAGS +* CXXFLAGS +* CPPFLAGS +* LDFLAGS + Additional flags to be used with C compiler, C++ compiler, C preprocessor (used for both C and C++ compilation) and linker, respectively. -Building Applications Using wxWidgets +Building Applications Using wxWidgets {#msw_build_apps} ===================================== If you want to use CMake for building your project, please see - - https://docs.wxwidgets.org/trunk/overview_cmake.html#cmake_apps +@ref overview_cmake. Otherwise follow the instructions below for "manual" setup of your project. We suppose that wxWidgets sources are under the directory $WXWIN (notice that different tool chains refer to environment variables such as WXWIN in different ways, e.g. MSVC users should use $(WXWIN) instead of just -$WXWIN). And we will use as a shortcut for the subdirectory of +$WXWIN). And we will use \ as a shortcut for the subdirectory of $WXWIN\lib which is composed from several parts separated by underscore: first, a compiler-specific prefix (e.g. "vc" for MSVC, "gcc" for g++ or the value of COMPILER_PREFIX if you set it explicitly), then optional "x64" if building in 64 bits and finally either "lib" or "dll" depending on whether static or dynamic wx libraries are being used. -For example, WXWIN could be "c:\wxWidgets\3.4.5" and could be +For example, WXWIN could be "c:\wxWidgets\3.4.5" and \ could be "c:\wxWidgets\3.4.5\lib\vc_x64_lib" for 64-bit static libraries built with MSVC. Here is what you need to do: -* Add $WXWIN\include to the +* Add $WXWIN\\include to the - compiler - resource compiler include paths. * If using MSVC, prepend $WXWIN\include\msvc to the include paths too. - Otherwise, append \mswu[d] to the include paths, where "d" should + Otherwise, append \\mswu[d] to the include paths, where "d" should be used for debug builds only. * Define the following symbols for the preprocessor: - - __WXMSW__ to ensure you use the correct wxWidgets port. + - `__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. * If using MSVC 7 only (i.e. not for later versions), also define wxUSE_RC_MANIFEST=1 and WX_CPU_X86. -* Add directory described above to the libraries path. +* Add \ directory described above to the libraries path. When using MSVC, the libraries are linked automatically using "#pragma comment(lib)" feature of this compiler. With all the other compilers you also @@ -554,3 +563,18 @@ using wxWidgets and always work, 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 $WXWIN\samples\minimal or some other sample and adapt it to your application. + +If you are not using Visual Studio 2010 or newer please see +@subpage plat_msw_winxp "Windows XP Support" to enable visual styles in your +application. + +Advanced Library Configurations {#msw_advanced} +=============================== +Build instructions to less common library configuartions using different UI +backends are avaiable here. + +@subpage plat_msw_msys2 "Building with Win32 MSys2 backend" + +@subpage plat_msw_msys2_gtk "Building with Win32 MSys2 GDK backend" + +@subpage plat_msw_gtk "Building wxGTK port with Win32 GDK backend" diff --git a/docs/msw/msys2-gtk.md b/docs/msw/msys2-gtk.md new file mode 100644 index 0000000000..e6cb03567a --- /dev/null +++ b/docs/msw/msys2-gtk.md @@ -0,0 +1,124 @@ +Building wxGTK port with Win32 MSys2 GDK backend {#plat_msw_msys2_gtk} +------------------------------------------------ + +GTK+ widget toolkit has multiple GDK backends and one of them is Win32. +It is a wrapper around Windows API. + +These notes don't consider building wxGTK with X11 backend under Windows. + +The MSys2 website is http://www.msys2.org/ + +These building steps are NOT the normal way to build MSys2 MinGW packages. +But, they are a way the wxWidgets developers can test that wxWidgets +can build the wxGTK/Win32 libraries under MSys2 MinGW. + +For the MSys2 way please see + https://github.com/Alexpux/MINGW-packages and + https://github.com/msys2/msys2/wiki/Creating-packages + +Building steps: + +**Warning**: At the time these directions were written the GTK version 3 + was NOT able to create wxGTK/Win32 libraries that were usable. + +1. Install the mingw32 packages needed to build wxGTK/Win32 using the + configure/make build method. + From the MSys2 prompt or MSys2 MinGW prompt: + + The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; + Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. + + pacman -S --needed --noconfirm make + pacman -S --needed --noconfirm mingw-w64-i686-libjpeg-turbo + pacman -S --needed --noconfirm mingw-w64-i686-libpng + pacman -S --needed --noconfirm mingw-w64-i686-libtiff + pacman -S --needed --noconfirm mingw-w64-i686-gcc + pacman -S --needed --noconfirm mingw-w64-i686-pkg-config + ## gtk2 can take a long time to update/find fonts + pacman -S --needed --noconfirm mingw-w64-i686-gtk2 + + + Packages that are needed but are normally installed already. + + pacman -S --needed --noconfirm mingw-w64-i686-gcc-libs + pacman -S --needed --noconfirm mingw-w64-i686-expat + pacman -S --needed --noconfirm mingw-w64-i686-xz + pacman -S --needed --noconfirm mingw-w64-i686-zlib + pacman -S --needed --noconfirm mingw-w64-i686-gdk-pixbuf2 + + +2. Build the wxGTK/Win32 static library + 1. Open MSys2 MinGW Prompt + (These steps were tested on MinGW32; but, should work under MinGW64) + 2. Use the cd command to change directory to the wxWidgets top folder. + + 3. Create the "build-gtk2-static" folder to build the static libraries + + mkdir -p build-gtk2-static + + 4. Configure wxWidgets + Option "--disable-precomp-headers" is NOT needed. + It is being used to test for compile issues. + + Remove configure option "--disable-wxdib" to set wxUSE_WXDIB to 1. + The directions docs/msw/gtk.txt results in wxUSE_WXDIB set to 1. + + cd build-gtk2-static && \ + ../configure --with-gtk=2 \ + --disable-wxdib \ + --disable-shared \ + --disable-precomp-headers \ + && cd .. + + 5. clean the wxGTK static libraries + + cd build-gtk2-static && make clean && cd .. + + 6. make the wxGTK static libraries + + cd build-gtk2-static && make && cd .. + + +3. Build and run the minimal static sample + 1. Clean the minimal sample + + cd build-gtk2-static/samples/minimal && make clean && cd ../../.. + + 2. Build the minimal sample + + cd build-gtk2-static/samples/minimal && make && cd ../../.. + + 3. Run the minimal sample + + ./build-gtk2-static/samples/minimal/minimal.exe + + +4. Build most of the static samples + 1. Clean most of the static samples + + cd build-gtk2-static/samples && make clean && cd ../.. + + 2. Build most of the static samples + + cd build-gtk2-static/samples && make && cd ../.. + + +5. Run the drawing static sample + + cd samples/drawing && ../../build-gtk2-static/samples/drawing/drawing.exe && cd ../.. + +6. Run the splash static sample + + cd samples/splash && ../../build-gtk2-static/samples/splash/splash.exe && cd ../.. + +7. Run the widgets static sample + + cd samples/widgets && ../../build-gtk2-static/samples/widgets/widgets.exe && cd ../.. + +8. Run the toolbar static sample + + cd samples/toolbar && ../../build-gtk2-static/samples/toolbar/toolbar.exe && cd ../.. + +9. Run the image static sample + + cd samples/image && ../../build-gtk2-static/samples/image/image.exe && cd ../.. diff --git a/docs/msw/msys2-gtk.txt b/docs/msw/msys2-gtk.txt deleted file mode 100644 index bc7a08a9a5..0000000000 --- a/docs/msw/msys2-gtk.txt +++ /dev/null @@ -1,111 +0,0 @@ -Building wxGTK port with Win32 MSys2 GDK backend ------------------------------------------------- - -GTK+ widget toolkit has multiple GDK backends and one of them is Win32. -It is a wrapper around Windows API. - -These notes don't consider building wxGTK with X11 backend under Windows. - -The MSys2 website is http://www.msys2.org/ - -These building steps are NOT the normal way to build MSys2 MinGW packages. -But, they are a way the wxWidgets developers can test that wxWidgets -can build the wxGTK/Win32 libraries under MSys2 MinGW. - -For the MSys2 way please see - https://github.com/Alexpux/MINGW-packages and - https://github.com/msys2/msys2/wiki/Creating-packages - -Building steps: - -#Note: The "#" is used in front of a comment to help the people who cut -# and paste these directions. -#Warning: At the time these directions were written the GTK version 3 -# was NOT able to create wxGTK/Win32 libraries that were usable. - -#1. Install the mingw32 packages needed to build wxGTK/Win32 using the -# configure/make build method. -# From the MSys2 prompt or MSys2 MinGW prompt: - -# The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; -# Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. - -pacman -S --needed --noconfirm make -pacman -S --needed --noconfirm mingw-w64-i686-libjpeg-turbo -pacman -S --needed --noconfirm mingw-w64-i686-libpng -pacman -S --needed --noconfirm mingw-w64-i686-libtiff -pacman -S --needed --noconfirm mingw-w64-i686-gcc -pacman -S --needed --noconfirm mingw-w64-i686-pkg-config -## gtk2 can take a long time to update/find fonts -pacman -S --needed --noconfirm mingw-w64-i686-gtk2 - - -# Packages that are needed but are normally installed already. -pacman -S --needed --noconfirm mingw-w64-i686-gcc-libs -pacman -S --needed --noconfirm mingw-w64-i686-expat -pacman -S --needed --noconfirm mingw-w64-i686-xz -pacman -S --needed --noconfirm mingw-w64-i686-zlib -pacman -S --needed --noconfirm mingw-w64-i686-gdk-pixbuf2 - - -#2. Build the wxGTK/Win32 static library -#2a.Open MSys2 MinGW Prompt -# (These steps were tested on MinGW32; but, should work under MinGW64) -#2b.Use the cd command to change directory to the wxWidgets top folder. - - -#2c.Create the "build-gtk2-static" folder to build the static libraries -mkdir -p build-gtk2-static - -#2d.Configure wxWidgets -# Option "--disable-precomp-headers" is NOT needed. -# It is being used to test for compile issues. -# -# Remove configure option "--disable-wxdib" to set wxUSE_WXDIB to 1. -# The directions docs/msw/gtk.txt results in wxUSE_WXDIB set to 1. -cd build-gtk2-static && \ - ../configure --with-gtk=2 \ - --disable-wxdib \ - --disable-shared \ - --disable-precomp-headers \ - && cd .. - -#2e.clean the wxGTK static libraries -cd build-gtk2-static && make clean && cd .. - -#2f.make the wxGTK static libraries -cd build-gtk2-static && make && cd .. - - -#3 Build and run the minimal static sample -#3a.Clean the minimal sample -cd build-gtk2-static/samples/minimal && make clean && cd ../../.. - -#3b.Build the minimal sample -cd build-gtk2-static/samples/minimal && make && cd ../../.. - -#3c.Run the minimal sample -./build-gtk2-static/samples/minimal/minimal.exe - - -#4 Build most of the static samples -#4a.Clean most of the static samples -cd build-gtk2-static/samples && make clean && cd ../.. -#4b.Build most of the static samples -cd build-gtk2-static/samples && make && cd ../.. - - -#5 Run the drawing static sample -cd samples/drawing && ../../build-gtk2-static/samples/drawing/drawing.exe && cd ../.. - -#6 Run the splash static sample -cd samples/splash && ../../build-gtk2-static/samples/splash/splash.exe && cd ../.. - -#7 Run the widgets static sample -cd samples/widgets && ../../build-gtk2-static/samples/widgets/widgets.exe && cd ../.. - -#8 Run the toolbar static sample -cd samples/toolbar && ../../build-gtk2-static/samples/toolbar/toolbar.exe && cd ../.. - -#9 Run the image static sample -cd samples/image && ../../build-gtk2-static/samples/image/image.exe && cd ../.. diff --git a/docs/msw/msys2-msw.md b/docs/msw/msys2-msw.md new file mode 100644 index 0000000000..a0bdedd853 --- /dev/null +++ b/docs/msw/msys2-msw.md @@ -0,0 +1,101 @@ +Building wxMSW port with Win32 MSys2 backend {#plat_msw_msys2} +------------------------------------------------ + +The MSys2 website is http://www.msys2.org/ + +These building steps are NOT the normal way to build MSys2 MinGW packages. +But, they are a way the wxWidgets developers can test that wxWidgets +can build the wxMSW libraries under MSys2 MinGW. + +For the MSys2 way please see https://github.com/Alexpux/MINGW-packages + +Building steps: + +1. Install the mingw32 packages needed to build wxMSW using the + configure/make build method. + From the MSys2 prompt or MSys2 MinGW prompt: + + The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; + Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. + + pacman -S --needed --noconfirm make + pacman -S --needed --noconfirm mingw-w64-i686-libjpeg-turbo + pacman -S --needed --noconfirm mingw-w64-i686-libpng + pacman -S --needed --noconfirm mingw-w64-i686-libtiff + pacman -S --needed --noconfirm mingw-w64-i686-gcc + + Packages that are needed but are normally installed already. + + pacman -S --needed --noconfirm mingw-w64-i686-gcc-libs + pacman -S --needed --noconfirm mingw-w64-i686-expat + pacman -S --needed --noconfirm mingw-w64-i686-xz + pacman -S --needed --noconfirm mingw-w64-i686-zlib + + +2. Build the wxMSW static library + 1. Open MSys2 MinGW Prompt + (These steps were tested on MinGW32; but, should work under MinGW64) + 2. Use the cd command to change directory to the wxWidgets top folder. + + 3. Create the "build-msw-static" folder to build the static libraries + + mkdir -p build-msw-static + + 4. Configure wxWidgets + + Option "--disable-precomp-headers" is NOT needed. + I am doing it to check for compile issues; + And, I think my old 32 bit Windows machine + works best with it disabled. + + cd build-msw-static && \ + ../configure --with-msw \ + --disable-shared \ + --disable-precomp-headers \ + && cd .. + + 5. make the wxMSW static libraries + + cd build-msw-static && make && cd .. + +3. Build and run the minimal static sample + + 1. Clean the minimal sample + + cd build-msw-static/samples/minimal && make clean && cd ../../.. + + 2. Build the minimal sample + + cd build-msw-static/samples/minimal && make && cd ../../.. + + 3. Run the minimal sample + + ./build-msw-static/samples/minimal/minimal.exe + +4. Clean the static samples + + cd build-msw-static/samples && make clean && cd ../.. + +5. Build and run the typetest static sample to verify MIME database works + + cd build-msw-static/samples/typetest && make && cd ../../.. + ./build-msw-static/samples/typetest/typetest.exe + +6. Build and run the drawing static sample + + cd build-msw-static/samples/drawing && make && cd ../../.. + cd samples/drawing && ../../build-msw-static/samples/drawing/drawing.exe && cd ../.. + +7. Build and run the splash static sample + + cd build-msw-static/samples/splash && make && cd ../../.. + cd samples/splash && ../../build-msw-static/samples/splash/splash.exe && cd ../.. + +8. Build and run the widgets static sample + + cd build-msw-static/samples/widgets && make && cd ../../.. + cd samples/widgets && ../../build-msw-static/samples/widgets/widgets.exe && cd ../.. + +9. Build all the rest of the static samples + + cd build-msw-static/samples && make && cd ../.. diff --git a/docs/msw/msys2-msw.txt b/docs/msw/msys2-msw.txt deleted file mode 100644 index a88366b2aa..0000000000 --- a/docs/msw/msys2-msw.txt +++ /dev/null @@ -1,92 +0,0 @@ -Building wxMSW port with Win32 MSys2 backend ------------------------------------------------- - -The MSys2 website is http://www.msys2.org/ - -These building steps are NOT the normal way to build MSys2 MinGW packages. -But, they are a way the wxWidgets developers can test that wxWidgets -can build the wxMSW libraries under MSys2 MinGW. - -For the MSys2 way please see https://github.com/Alexpux/MINGW-packages - -Building steps: - -#Note: The "#" is used in front of a comment to help the people who cut -# and paste these directions. - -#1. Install the mingw32 packages needed to build wxMSW using the -# configure/make build method. -# From the MSys2 prompt or MSys2 MinGW prompt: - -# The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; -# Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. - -pacman -S --needed --noconfirm make -pacman -S --needed --noconfirm mingw-w64-i686-libjpeg-turbo -pacman -S --needed --noconfirm mingw-w64-i686-libpng -pacman -S --needed --noconfirm mingw-w64-i686-libtiff -pacman -S --needed --noconfirm mingw-w64-i686-gcc - -# Packages that are needed but are normally installed already. -pacman -S --needed --noconfirm mingw-w64-i686-gcc-libs -pacman -S --needed --noconfirm mingw-w64-i686-expat -pacman -S --needed --noconfirm mingw-w64-i686-xz -pacman -S --needed --noconfirm mingw-w64-i686-zlib - - -#2. Build the wxMSW static library -#2a.Open MSys2 MinGW Prompt -# (These steps were tested on MinGW32; but, should work under MinGW64) -#2b.Use the cd command to change directory to the wxWidgets top folder. - - -#2c.Create the "build-msw-static" folder to build the static libraries -mkdir -p build-msw-static - -#2d.Configure wxWidgets -# Option "--disable-precomp-headers" is NOT needed. -# I am doing it to check for compile issues; -# And, I think my old 32 bit Windows machine -# works best with it disabled. -cd build-msw-static && \ - ../configure --with-msw \ - --disable-shared \ - --disable-precomp-headers \ - && cd .. - -#2e.make the wxMSW static libraries -cd build-msw-static && make && cd .. - - -#3 Build and run the minimal static sample -#3a.Clean the minimal sample -cd build-msw-static/samples/minimal && make clean && cd ../../.. - -#3b.Build the minimal sample -cd build-msw-static/samples/minimal && make && cd ../../.. - -#3c.Run the minimal sample -./build-msw-static/samples/minimal/minimal.exe - - -#4 Clean the static samples -cd build-msw-static/samples && make clean && cd ../.. - -#5 Build and run the typetest static sample to verify MIME database works -cd build-msw-static/samples/typetest && make && cd ../../.. -./build-msw-static/samples/typetest/typetest.exe - -#6 Build and run the drawing static sample -cd build-msw-static/samples/drawing && make && cd ../../.. -cd samples/drawing && ../../build-msw-static/samples/drawing/drawing.exe && cd ../.. - -#7 Build and run the splash static sample -cd build-msw-static/samples/splash && make && cd ../../.. -cd samples/splash && ../../build-msw-static/samples/splash/splash.exe && cd ../.. - -#8 Build and run the widgets static sample -cd build-msw-static/samples/widgets && make && cd ../../.. -cd samples/widgets && ../../build-msw-static/samples/widgets/widgets.exe && cd ../.. - -#9 Build all the rest of the static samples -cd build-msw-static/samples && make && cd ../.. diff --git a/docs/msw/readme.txt b/docs/msw/readme.txt index 75c619c10b..00511b290a 100644 --- a/docs/msw/readme.txt +++ b/docs/msw/readme.txt @@ -1,7 +1,7 @@ This is wxWidgets for Windows (wxMSW) ------------------------------------- -For information on installing wxWidgets, please see install.txt. +For information on installing wxWidgets, please see install.md. For further information, please see docs/html/index.htm and the wxWidgets reference manual. diff --git a/docs/msw/winxp.txt b/docs/msw/winxp.md similarity index 66% rename from docs/msw/winxp.txt rename to docs/msw/winxp.md index 6c03f97760..a690ced463 100644 --- a/docs/msw/winxp.txt +++ b/docs/msw/winxp.md @@ -1,4 +1,4 @@ -Microsoft Windows XP Support from wxWidgets +Microsoft Windows XP Support from wxWidgets {#plat_msw_winxp} ------------------------------------------- Windows XP introduces the themes (called "visual styles" in the Microsoft @@ -30,27 +30,25 @@ for more details. Here is the example manifest which you can put into controls.exe.manifest file to test theme support using the controls sample: ---- cut here --- - - - -Controls: wxWidgets sample application - - - - - - ---- cut here --- + + + + Controls: wxWidgets sample application + + + + + + diff --git a/docs/osx/install.txt b/docs/osx/install.md similarity index 70% rename from docs/osx/install.txt rename to docs/osx/install.md index 57157981ac..9313a6f737 100644 --- a/docs/osx/install.txt +++ b/docs/osx/install.md @@ -1,58 +1,57 @@ -wxWidgets for OS X installation +wxWidgets for OS X installation {#plat_osx_install} ----------------------------------- +[TOC] + wxWidgets can be compiled using Apple's Cocoa library. -Most OS X developers should start by downloading and installing Xcode +Most OS X developers should start by downloading and installing Xcode from the App Store. It is a free IDE from Apple that provides all of the tools you need for working with wxWidgets. -After Xcode is installed, download wxWidgets-{version}.tar.bz2 and then +After Xcode is installed, download wxWidgets-{version}.tar.bz2 and then double-click on it to unpack it to create a wxWidgets directory. -Next use Terminal (under Applications, Utilities, Terminal) to access a command -prompt. Use cd to change directories to your wxWidgets directory and execute +Next use Terminal (under Applications, Utilities, Terminal) to access a command +prompt. Use cd to change directories to your wxWidgets directory and execute the following sets of commands from the wxWidgets directory. ---------- + mkdir build-cocoa-debug + cd build-cocoa-debug + ../configure --enable-debug + make -mkdir build-cocoa-debug -cd build-cocoa-debug -../configure --enable-debug -make -# Build the samples and demos -cd samples; make;cd .. -cd demos; make;cd .. +Build the samples and demos ---------- + cd samples; make;cd .. + cd demos; make;cd .. After the compilation completes, use Finder to run the samples and demos - Go to build-cocoa-debug/samples to experiment with the Cocoa samples. - Go to build-cocoa-debug/demos to experiment with the Cocoa demos. -Double-click on the executables which have an icon showing three small squares. -The source code for the samples is in wxWidgets/samples -The source code for the demos is in wxWidgets/demos - ---------- +* Go to build-cocoa-debug/samples to experiment with the Cocoa samples. +* Go to build-cocoa-debug/demos to experiment with the Cocoa demos. +* Double-click on the executables which have an icon showing three small squares. +* The source code for the samples is in wxWidgets/samples +* The source code for the demos is in wxWidgets/demos More information about building on OS X is available in the wxWiki. Here are two useful links - https://wiki.wxwidgets.org/Guides_%26_Tutorials - https://wiki.wxwidgets.org/Development:_wxMac + * https://wiki.wxwidgets.org/Guides_%26_Tutorials + * https://wiki.wxwidgets.org/Development:_wxMac ---------- -More advanced topics are covered below. +Advanced topics {#osx_advanced} +=============== ---------- +Installing library {#osx_install} +------------------ If you want to install the library into the system directories you'll need to do this as root. The accepted way of running commands as root is to use the built-in sudo mechanism. First of all, you must be using an account marked as a "Computer Administrator". Then -6) sudo make install -7) type + sudo make install + type \ Note that while using this method is okay for development, it is not recommended that you require endusers to install wxWidgets into their @@ -61,13 +60,13 @@ is to configure wxWidgets with --disable-shared. Another way to avoid it is to make a framework for wxWidgets. Making frameworks is beyond the scope of this document. -Note: +**Note:** It is rarely desirable to install non-Apple software into system directories. By configuring the library with --disable-shared and using the full path to wx-config with the --in-place option you can avoid installing the library. -Apple Developer Tools: Xcode +Apple Developer Tools: Xcode {#osx_xcode} ---------------------------- You can use the project in build/osx/wxcocoa.xcodeproj to build the Cocoa @@ -79,10 +78,10 @@ also wxrc tool which doesn't have its own Xcode project. If you need this tool, the simplest possibility is to build it from the command line after installing the libraries using commands like this: -$ cd utils/wxrc -$ g++ -o wxrc wxrc.cpp `wx-config --cxxflags --libs base,xml` + $ cd utils/wxrc + $ g++ -o wxrc wxrc.cpp `wx-config --cxxflags --libs base,xml` -Creating universal binaries +Creating universal binaries {#osx_universal_bin} --------------------------- The Xcode projects for the wxWidgets library and minimal project are set up @@ -108,11 +107,11 @@ binaries together. Assuming building on a PPC system: 2. Then, build for Intel, in a different folder. This time use: -export CFLAGS="-g -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386" -export LDFLAGS="-syslibroot,/Developer/SDKs/MacOSX10.7.sdk" + export CFLAGS="-g -isysroot /Developer/SDKs/MacOSX10.7.sdk -arch i386" + export LDFLAGS="-syslibroot,/Developer/SDKs/MacOSX10.7.sdk" -./configure --disable-dependency-tracking --enable-static=yes --enable-shared=no \ - --target=i386-apple-darwin8 --host=powerpc-apple-darwin8 --build=i386-apple-darwin8 + ./configure --disable-dependency-tracking --enable-static=yes --enable-shared=no \ + --target=i386-apple-darwin8 --host=powerpc-apple-darwin8 --build=i386-apple-darwin8 You will need to reverse the powerpc and i386 parameters everywhere to build PPC on an Intel machine. diff --git a/docs/osx/readme.txt b/docs/osx/readme.txt index 766c099a10..28c11e87a0 100644 --- a/docs/osx/readme.txt +++ b/docs/osx/readme.txt @@ -2,9 +2,9 @@ Welcome to wxWidgets/Mac More Information is available from the wxWidgets project home page at -https://www.wxwidgets.org +https://www.wxwidgets.org -For more information, please see install.txt and the manuals. +For more information, please see install.md and the manuals. Please send problems concerning installation, feature requests, bug reports or comments to the wxWidgets users list. Information From f8460059cdb52c9153e0c99712294bdc201a2733 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 3 Oct 2018 18:55:02 +0200 Subject: [PATCH 2/5] Integrate GTK documentation into doxygen --- docs/doxygen/Doxyfile | 1 + docs/doxygen/mainpages/platdetails.h | 5 +- docs/gtk/{install.txt => install.md} | 143 ++++++++++++++------------- docs/gtk/overview.md | 2 +- 4 files changed, 77 insertions(+), 74 deletions(-) rename docs/gtk/{install.txt => install.md} (83%) diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 717e859b79..56e567fd2e 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -292,6 +292,7 @@ WARN_LOGFILE = doxygen.log INPUT = mainpages \ groups \ overviews \ + ../gtk \ ../ios \ ../msw \ ../osx \ diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h index ec95b1e25c..8d0a799201 100644 --- a/docs/doxygen/mainpages/platdetails.h +++ b/docs/doxygen/mainpages/platdetails.h @@ -52,8 +52,9 @@ GTK+ 1.2 can still be used, albeit discouraged. For that you can pass Support for GTK+ 3 is available starting with wxWidgets 2.9.4, use @c configure option @c \--with-gtk=3 to enable it. -For further information, please see the files in @c docs/gtk in the -distribution. +@subpage plat_gtk_install "Build and Install Instructions" + +@subpage plat_gtk_overview "wxWidgets on the GNOME Desktop" diff --git a/docs/gtk/install.txt b/docs/gtk/install.md similarity index 83% rename from docs/gtk/install.txt rename to docs/gtk/install.md index 965822c89a..11e37bc11a 100644 --- a/docs/gtk/install.txt +++ b/docs/gtk/install.md @@ -1,6 +1,8 @@ -wxWidgets for GTK+ installation +wxWidgets for GTK+ installation {#plat_gtk_install} ------------------------------- +[TOC] + IMPORTANT NOTE: If you experience problems installing, please re-read these @@ -13,19 +15,24 @@ IMPORTANT NOTE: using (including the beta) and what compiler on what system. One example: wxGTK 3.0.0, GCC 4.8.1, Fedora 19 -* The simplest case +Installation {#gtk_install} +============ + + +The simplest case {#gtk_simple} ------------------- If you compile wxWidgets on Linux for the first time and don't like to read install instructions just do (in the base dir): -> mkdir buildgtk -> cd buildgtk -> ../configure --with-gtk -> make -> su -> make install -> ldconfig + > mkdir buildgtk + > cd buildgtk + > ../configure --with-gtk + > make + > su + > make install + > ldconfig + [if you get "ldconfig: command not found", try using "/sbin/ldconfig"] If you don't do the 'make install' part, you can still use the libraries from @@ -33,14 +40,14 @@ the buildgtk directory, but they may not be available to other users. If you want to remove wxWidgets on Unix you can do this: -> su -> make uninstall -> ldconfig + > su + > make uninstall + > ldconfig Note that by default, GTK+ 2.x is used. GTK+ 3 can be specified with --with-gtk=3. -* The expert case +The expert case {#gtk_expert} ----------------- If you want to do some more serious cross-platform programming with wxWidgets, @@ -53,28 +60,28 @@ with --enable-debug and one without. For building three versions (one GTK+, one Motif and a debug version of the GTK source) you'd do this: -mkdir buildmotif -cd buildmotif -../configure --with-motif -make -cd .. + mkdir buildmotif + cd buildmotif + ../configure --with-motif + make + cd .. -mkdir buildgtk -cd buildgtk -../configure --with-gtk -make -cd .. + mkdir buildgtk + cd buildgtk + ../configure --with-gtk + make + cd .. -mkdir buildgtkd -cd buildgtkd -../configure --with-gtk --enable-debug -make -cd .. + mkdir buildgtkd + cd buildgtkd + ../configure --with-gtk --enable-debug + make + cd .. Note that you can install all those libraries concurrently, you just need to pass the appropriate flags when using them. -* The simplest errors +The simplest errors {#gtk_errors_simple} --------------------- For any configure errors: please look at config.log file which was generated @@ -101,18 +108,18 @@ GCC 2.95 or later. You get immediate segfault when starting any sample or application: This is either due to having compiled the library with different flags or options than -your program - typically you might have the __WXDEBUG__ option set for the +your program - typically you might have the `__WXDEBUG__` option set for the library but not for your program - or due to using a compiler with optimisation bugs. -* The simplest program +The simplest program {#gtk_simple_app} ---------------------- Now create your super-application myfoo.cpp and compile anywhere with -g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo -* GUI libraries +GUI libraries {#gtk_libs_gui} --------------- wxWidgets/GTK+ requires the GTK+ library to be installed on your system. It has @@ -127,7 +134,7 @@ You can get the newest version of the GTK+ from the GTK+ homepage at: We also mirror GTK+ at my ftp site. You'll find information about downloading at my homepage. -* Additional libraries +Additional libraries {#gtk_libs_misc} ---------------------- wxWidgets/Gtk requires a thread library and X libraries known to work with @@ -138,14 +145,14 @@ correct glibc 2 support. You can disable thread support by running -./configure --disable-threads -make -su -make install -ldconfig -exit + ./configure --disable-threads + make + su + make install + ldconfig + exit -* Building wxGTK on Cygwin +Building wxGTK on Cygwin {#gtk_cygwin} -------------------------- The normal build instructions should work fine on Cygwin. The one difference @@ -159,10 +166,11 @@ will see linking errors. If this happens then you can work around the problem by setting LDFLAGS=-Wl,--export-all-symbols. Please also let us know about it on the wx-dev mailing list. -* Create your configuration +Create your configuration {#gtk_config} --------------------------- Usage: + ./configure options If you want to use system's C and C++ compiler, @@ -182,7 +190,7 @@ have multiple configurations (for example, debug and release or GTK and Motif) simultaneously. -* General options +General options {#gtk_options} ----------------- Given below are the commands to change the default behaviour, @@ -259,7 +267,7 @@ The following options handle the kind of library you want to build. option instead of --enable-debug_info/flag ones separately. -* Feature Options +Feature Options {#gtk_feature_options} ----------------- When producing an executable that is linked statically with wxGTK @@ -316,7 +324,7 @@ Please see the output of "./configure --help" for comprehensive list of all configurable options. -* Compiling +Compiling {#gtk_compling} ----------- The following must be done in the base directory (e.g. ~/wxGTK @@ -352,43 +360,36 @@ make clean in the various directories will do the work for you. -* Creating a new Project +Creating a new Project {#gtk_new_project} -------------------------- -1) The first way uses the installed libraries and header files -automatically using wx-config +1. The first way uses the installed libraries and header files + automatically using wx-config -g++ myfoo.cpp `wx-config --cxxflags --libs` -o myfoo + g++ myfoo.cpp `wx-config --cxxflags --libs` -o myfoo -Using this way, a make file for the minimal sample would look -like this + Using this way, a make file for the minimal sample would look + like this -CXX = g++ + CXX = g++ -minimal: minimal.o - $(CXX) -o minimal minimal.o `wx-config --libs` + minimal: minimal.o + $(CXX) -o minimal minimal.o `wx-config --libs` -minimal.o: minimal.cpp - $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o + minimal.o: minimal.cpp + $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o -clean: - rm -f *.o minimal + clean: + rm -f *.o minimal -If your application uses only some of wxWidgets libraries, you can -specify required libraries when running wx-config. For example, -`wx-config --libs=html,core` will only output link command to link -with libraries required by core GUI classes and wxHTML classes. See -the manual for more information on the libraries. + If your application uses only some of wxWidgets libraries, you can + specify required libraries when running wx-config. For example, + `wx-config --libs=html,core` will only output link command to link + with libraries required by core GUI classes and wxHTML classes. See + the manual for more information on the libraries. -2) The other way creates a project within the source code +2. The other way creates a project within the source code directories of wxWidgets. For this endeavour, you'll need GNU autoconf version 2.14 and add an entry to your Makefile.in to the bottom of the configure.in script and run autoconf and configure before you can type make. - ----------------------- - -In the hope that it will be useful, - - Robert Roebling - diff --git a/docs/gtk/overview.md b/docs/gtk/overview.md index 0ae6a19157..60d5265670 100644 --- a/docs/gtk/overview.md +++ b/docs/gtk/overview.md @@ -1,4 +1,4 @@ -# wxWidgets on the GNOME Desktop +# wxWidgets on the GNOME Desktop {#plat_gtk_overview} wxWidgets is a C++ cross-platform GUI library, whose distintive feature is the use of native calls and native widgets on the respective platform, i.e. an From 141b5bdf0f99fea40f235c240b212ca8363b8b9f Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 3 Oct 2018 19:16:39 +0200 Subject: [PATCH 3/5] Integrate QT documentation into doxygen --- docs/doxygen/Doxyfile | 1 + docs/doxygen/mainpages/platdetails.h | 4 +- docs/qt/architecture.md | 18 ++-- docs/qt/{install.txt => install.md} | 138 ++++++++++++++------------- 4 files changed, 83 insertions(+), 78 deletions(-) rename docs/qt/{install.txt => install.md} (67%) diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 56e567fd2e..79e80eb90d 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -296,6 +296,7 @@ INPUT = mainpages \ ../ios \ ../msw \ ../osx \ + ../qt \ ../../interface INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.h *.md diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h index 8d0a799201..4826fd1ce9 100644 --- a/docs/doxygen/mainpages/platdetails.h +++ b/docs/doxygen/mainpages/platdetails.h @@ -167,7 +167,9 @@ wxWindowBase::GetDefaultBorder(), returning wxBORDER_NONE. wxQt is a port of wxWidgets using Qt libraries. It requires Qt 5 or later. -For further information, please see the files in docs/qt in the distribution. +@subpage plat_qt_install "Build Instructions" + +@subpage plat_qt_architecture "Architecture Overview" @section page_port_wxiOS wxiOS diff --git a/docs/qt/architecture.md b/docs/qt/architecture.md index 557de91312..5804db42ac 100644 --- a/docs/qt/architecture.md +++ b/docs/qt/architecture.md @@ -1,4 +1,4 @@ -# wxQt Architecture +# wxQt Architecture {#plat_qt_architecture} ## Internals @@ -7,11 +7,11 @@ wxQT uses the same techniques like other ports to wrap the Qt toolkit classes in ### Current (original) Approach An '''internal pointer m_qtWindow''' in wxWindow holds the reference to the QWidget (or derived) counterpart, and is accesible through the virtual method '''GetHandle'''. -This pointer and other window styles are set up in the '''PostCreation''' method that must be called by the derived classes (mostly controls) to initialize the widget correctly. +This pointer and other window styles are set up in the '''PostCreation''' method that must be called by the derived classes (mostly controls) to initialize the widget correctly. Not doing so will cause painting and deletion issues, as the base class will not know how to handle the Qt widget. wxControl even provides a protected method '''QtCreateControl''' that will do the common initialization (including post creation step, moving, sizing, etc., and calling the base to add the child to the parent). -'''Warning:''' Take care of not calling any function that can raise an assertion before `PostCreation`, for example wxFAIL_MSG, as it will interrupt the normal initialization, hence the later cleanup will crash. +'''Warning:''' Take care of not calling any function that can raise an assertion before `PostCreation`, for example wxFAIL_MSG, as it will interrupt the normal initialization, hence the later cleanup will crash. For example, this issue was caused by WXValidateStyle in wxCheckBox::Create, that was "failing silently" in unit tests, and then raising segmentation faults when the object was later deleted (as Qt checkbox counterpart was never being deleted due the aborted initialization). Many controls have also other pointers to allow to map different sub-widgets and other features. @@ -28,9 +28,9 @@ Note that some special cases are '''not real windows''' like the `wxTabFrame` (A ### Scroll Areas In both approaches, special care should be taken with scrolling areas, as Qt manages this ones slightly different to wxWidgets. -'''QtGetScrollBarsContainer''' should be reimplemented to return the QScrollArea widget or similar (where the scroll bars are places). +'''QtGetScrollBarsContainer''' should be reimplemented to return the QScrollArea widget or similar (where the scroll bars are places). -That widget should implement a '''viewport()''' (Qt idiom to differentiate the draw-able area). +That widget should implement a '''viewport()''' (Qt idiom to differentiate the draw-able area). Attempts to paint directly to the scroll area itself will fail. This is already handled in the QtHandlePaintEvent wxWindowQt method. @@ -54,19 +54,19 @@ Qt objects needs to be sub-classed to '''re-implement events''' and '''connect s The approach chosen was to use templates to help inherit QObject's (QWidget), providing a common base to handle events and signal infrastructure: -* '''wxQtSignalHandler< wxWindow >:''' allows emitting wx events for Qt events & signals. This should be used used for all QObjects derivatives that are not widgets, for example QAction (used for shortcut / accelerators). +* '''wxQtSignalHandler< wxWindow >:''' allows emitting wx events for Qt events & signals. This should be used used for all QObjects derivatives that are not widgets, for example QAction (used for shortcut / accelerators). * '''wxQtEventSignalHandler< QWidget, wxWindow >:''' derived from `wxQtSignalHandler`, also handles basic events (change, focus, mouse, keyboard, paint, close, etc.). This should be used for all QWidget derivatives (controls, top level windows, etc.) ### Delete later -Both templates also have some safety checks to avoid invalid spurious access to deleted wx objects (using a special pointer to the wx instance stored in the Qt object, that is reseted to NULL when the wx counterpart is marked to deletion). +Both templates also have some safety checks to avoid invalid spurious access to deleted wx objects (using a special pointer to the wx instance stored in the Qt object, that is reseted to NULL when the wx counterpart is marked to deletion). This is due that in some situations, Qt object could still be referenced in the Qt event queue, so it cannot be removed immediately. -'''Important:''' Currently wxQT is using Qt's '''deleteLater''' method to avoid this kind of issues. +'''Important:''' Currently wxQT is using Qt's '''deleteLater''' method to avoid this kind of issues. Please, don't use delete directly except you're confident it will not cause faults or other issues. -Note that no public wxWidget class should be derived directly from QWidget as they could have different lifespans and other implications to run time type systems (RTTI). +Note that no public wxWidget class should be derived directly from QWidget as they could have different lifespans and other implications to run time type systems (RTTI). Some QObjects are even owned by Qt (for example: menubar, statusbar) and some parents (ie. `QTabWidget`) cannot be deleted immediately in some circumstances (they would cause segmentation faults due spurious events / signals caused by the children destruction if not correctly handled as explained previously) For more information about the deletion issues, see [deleteLater](https://github.com/reingart/wxWidgets/wiki/WxQtDeleteLaterNotes ) notes and [wx-dev thread](https://groups.google.com/d/msg/wx-dev/H0Xc9aQzaH4/crjFDPsEA0cJ) discussion. diff --git a/docs/qt/install.txt b/docs/qt/install.md similarity index 67% rename from docs/qt/install.txt rename to docs/qt/install.md index f53c602b8c..293999385a 100644 --- a/docs/qt/install.txt +++ b/docs/qt/install.md @@ -1,6 +1,8 @@ -wxWidgets for Qt installation +wxWidgets for Qt installation {#plat_qt_install} ----------------------------- +[TOC] + IMPORTANT NOTE: If you experience problems installing, please re-read these @@ -13,19 +15,23 @@ IMPORTANT NOTE: using (including the beta) and what compiler on what system. One example: wxQt 3.1.0, GCC 4.8.1, Ubuntu 14.04 -* The simplest case +Installation {#qt_install} +============ + +The simplest case {#qt_simple} ------------------- If you compile wxWidgets on Linux for the first time and don't like to read install instructions just do (in the base dir): -> mkdir buildqt -> cd buildqt -> ../configure --with-qt -> make -> su -> make install -> ldconfig + > mkdir buildqt + > cd buildqt + > ../configure --with-qt + > make + > su + > make install + > ldconfig + [if you get "ldconfig: command not found", try using "/sbin/ldconfig"] If you don't do the 'make install' part, you can still use the libraries from @@ -33,65 +39,65 @@ the buildgtk directory, but they may not be available to other users. If you want to remove wxWidgets on Unix you can do this: -> su -> make uninstall -> ldconfig + > su + > make uninstall + > ldconfig -* The simplest errors +The simplest errors {#qt_error_simple} --------------------- For any configure errors: please look at config.log file which was generated during configure run, it usually contains some useful information. -configure reports, that you don't have Qt installed although you are very +configure reports, that you don't have Qt installed although you are very sure you have. Well, you have installed it, but you also have another -version of the Qt installed, which you may need to remove. Or maybe you -installed it in a non-default location and configure can't find it there, -so please check that your PATH variable includes the path to the correct -qtconfig/pkg-config. Also check that your LD_LIBRARY_PATH or equivalent -variable contains the path to Qt libraries if they were installed in a +version of the Qt installed, which you may need to remove. Or maybe you +installed it in a non-default location and configure can't find it there, +so please check that your PATH variable includes the path to the correct +qtconfig/pkg-config. Also check that your LD_LIBRARY_PATH or equivalent +variable contains the path to Qt libraries if they were installed in a non-default location. -* The simplest program +The simplest program {#qt_simple_app} ---------------------- Now create your super-application myfoo.cpp and compile anywhere with -g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo -* GUI libraries +GUI libraries {#qt_libs_ui} --------------- wxWidgets/Qt requires the Qt library to be installed on your system. It has to be a stable version, preferably Qt 5.2.1 or later. -* Building wxQT on Ubuntu +Building wxQT on Ubuntu {#qt_build_ubuntu} ------------------------- Install latest Qt5 packages (qt5-default). To build unit tests, libcppunit-dev is required. You will need to install other dependencies to compile wxWidgets -depending on the features you'll want to use (build-essential libjpeg-dev +depending on the features you'll want to use (build-essential libjpeg-dev libtiff5-dev ubuntu-restricted-extras freeglut3 freeglut3-dev libsdl1.2-dev libgstreamer-plugins-base0.10-dev) Then create a build directory, configure and compile: -mkdir bldqt5 -cd bldqt5 -../configure --with-qt --enable-debug -make -make samples + mkdir bldqt5 + cd bldqt5 + ../configure --with-qt --enable-debug + make + make samples If everything is ok, you can do the make install as specified before. Optionally, you can build and run Unit Tests: -cd tests -make -./test_gui + cd tests + make + ./test_gui -* Building wxQT, using qt-unified-XXX-online installer +Building wxQT, using qt-unified-XXX-online installer {#qt_build} ------------------------------------------------------ Download qt-unified-XXX-online installer from the qt website. @@ -100,56 +106,59 @@ restriction as above). The same build instructions apply, except that you need to explicitly pass to configure the Qt dir of the build intended to use as QT5_CUSTOM_DIR, i.e. -# for Linux: -../configure --with-qt --enable-debug QT5_CUSTOM_DIR=~/Qt/5.11.0/gcc_64 +for Linux: -# for Windows (ran from Git Bash, or any other Unix-like shell): -# (the syntax for the drive in the path is required by ar and ld) -../configure --with-qt --enable-debug QT5_CUSTOM_DIR=c:/Qt/5.11.0/mingw53_32 + ../configure --with-qt --enable-debug QT5_CUSTOM_DIR=~/Qt/5.11.0/gcc_64 -* Building wxGT on Android +for Windows (ran from Git Bash, or any other Unix-like shell): +(the syntax for the drive in the path is required by ar and ld) + + ../configure --with-qt --enable-debug QT5_CUSTOM_DIR=c:/Qt/5.11.0/mingw53_32 + +Building wxGT on Android {#qt_android} -------------------------- Download Android Native Development Kit (NDK), tandalone Android Software Development Kit (SDK), install them and perform the following instructions to prepare the cross-compilation tool-chain to (change NDK and other paths): -NDK=~/src/android-ndk-r9d -SDK=~/src/android-sdk-linux -export ANDROID_NDK_ROOT=$NDK -$NDK/build/tools/make-standalone-toolchain.sh \ - --toolchain=arm-linux-androideabi-4.8 --platform=android-9 \ - --install-dir=/tmp/ndk + NDK=~/src/android-ndk-r9d + SDK=~/src/android-sdk-linux + export ANDROID_NDK_ROOT=$NDK + $NDK/build/tools/make-standalone-toolchain.sh \ + --toolchain=arm-linux-androideabi-4.8 --platform=android-9 \ + --install-dir=/tmp/ndk -export PATH=/tmp/ndk/bin:$PATH -export CC=arm-linux-androideabi-gcc -export CXX=arm-linux-androideabi-g++ + export PATH=/tmp/ndk/bin:$PATH + export CC=arm-linux-androideabi-gcc + export CXX=arm-linux-androideabi-g++ Also, you'll need to download the Qt library bundle that matches your operating -system installed package (5.2.1 in this case installed in ~/src/qt, you'll need +system installed package (5.2.1 in this case installed in ~/src/qt, you'll need the android_armv5/ android_armv7/ android_x86/ pre-compiled folders to cross-compile for that architectures) -Then, create a build directory (under the wxWidgets folder), configure for +Then, create a build directory (under the wxWidgets folder), configure for Andrid (disable currently unsupported/uneeded features) and run make: -cd ~/src/wxWidgets -mkdir bldqt5droid -cd bldqt5droid -../configure --with-qt --enable-debug --build=x86_64-unknown-linux-gnu \ - --host=arm-linux-androideabi --disable-compat28 --disable-shared \ - --disable-arttango --enable-image --disable-dragimage --disable-sockets \ - --with-libtiff=no --without-opengl --disable-baseevtloop --disable-utf8 -make + cd ~/src/wxWidgets + mkdir bldqt5droid + cd bldqt5droid + ../configure --with-qt --enable-debug --build=x86_64-unknown-linux-gnu \ + --host=arm-linux-androideabi --disable-compat28 --disable-shared \ + --disable-arttango --enable-image --disable-dragimage --disable-sockets \ + --with-libtiff=no --without-opengl --disable-baseevtloop --disable-utf8 + make You can now compile and link your app against this build, and finally package it for Android using standard APK tools. -* Create your configuration +Create your configuration {#qt_config} --------------------------- Usage: + ./configure options If you want to use system's C and C++ compiler, @@ -168,13 +177,13 @@ subdirectory of your wxWidgets installation) as this allows you to have multiple configurations (for example, debug and release or GTK and Motif) simultaneously. -* Feature Options +Feature Options {#qt_feature_options} ----------------- When producing an executable that is linked statically with wxQt you'll be surprised at its immense size. This can sometimes be drastically reduced by removing features from wxWidgets that -are not used in your program. +are not used in your program. Please see the output of "./configure --help" for comprehensive list of all configurable options. @@ -182,10 +191,3 @@ of all configurable options. Apart from disabling certain features you can very often "strip" the program of its debugging information resulting in a significant reduction in size. - ----------------------- - -In the hope that it will be useful, - - The wxWidgets Team - From da04a0a8e7f1c61047f54eca871e4e07c07ae870 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 3 Oct 2018 19:42:32 +0200 Subject: [PATCH 4/5] Integrate X11 and Motif install instructions into doxygen --- docs/doxygen/Doxyfile | 2 + docs/doxygen/mainpages/platdetails.h | 9 +- docs/motif/{install.txt => install.md} | 189 ++++++++++++------------ docs/x11/{install.txt => install.md} | 191 ++++++++++++------------- 4 files changed, 189 insertions(+), 202 deletions(-) rename docs/motif/{install.txt => install.md} (79%) rename docs/x11/{install.txt => install.md} (77%) diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 79e80eb90d..e6e63965c5 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -294,9 +294,11 @@ INPUT = mainpages \ overviews \ ../gtk \ ../ios \ + ../motif \ ../msw \ ../osx \ ../qt \ + ../x11 \ ../../interface INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.h *.md diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h index 4826fd1ce9..40df3949c4 100644 --- a/docs/doxygen/mainpages/platdetails.h +++ b/docs/doxygen/mainpages/platdetails.h @@ -80,8 +80,9 @@ In order to configure wxWidgets to compile wxX11 you will need to type: @verbatim configure --with-x11 --with-universal @endverbatim -For further information, please see the files in @c docs/x11 in the -distribution. There is also a page on the use of wxWidgets for embedded +@subpage plat_x11_install "Build Instructions" + +There is also a page on the use of wxWidgets for embedded applications on the wxWidgets web site. @@ -92,8 +93,8 @@ wxMotif is a port of wxWidgets for X11 systems using Motif libraries. Motif libraries provide a clean and fast user interface at the expense of the beauty and candy of newer interfaces like GTK. -For further information, please see the files in @c docs/motif in the -distribution. +@subpage plat_motif_install "Build Instructions" + diff --git a/docs/motif/install.txt b/docs/motif/install.md similarity index 79% rename from docs/motif/install.txt rename to docs/motif/install.md index 1b937c304a..322aa0096c 100644 --- a/docs/motif/install.txt +++ b/docs/motif/install.md @@ -1,6 +1,8 @@ -wxWidgets for Motif installation +wxWidgets for Motif installation {#plat_motif_install} -------------------------------- +[TOC] + IMPORTANT NOTE: If you experience problems installing, please re-read these @@ -40,38 +42,38 @@ First steps config.log file). -COMPILING USING CONFIGURE +Compiling using configure {#motif_configure} ========================= -* The simplest case +The simplest case {#motif_simple} ------------------- If you compile wxWidgets on Linux for the first time and don't like to read install instructions just do (in the base dir): -> ./configure --with-motif -> make -> su -> make install -> ldconfig -> exit + > ./configure --with-motif + > make + > su + > make install + > ldconfig + > exit Afterwards you can continue with -> make -> su -> make install -> ldconfig -> exit + > make + > su + > make install + > ldconfig + > exit If you want to remove wxWidgets on Unix you can do this: -> su -> make uninstall -> ldconfig -> exit + > su + > make uninstall + > ldconfig + > exit -* The expert case +The expert case {#motif_expert} ----------------- If you want to do some more serious cross-platform programming with wxWidgets, @@ -84,28 +86,28 @@ with --enable-debug and one without. For building three versions (one GTK, one Motif and a debug version of the GTK source) you'd do this: -mkdir buildmotif -cd buildmotif -../configure --with-motif -make -cd .. + mkdir buildmotif + cd buildmotif + ../configure --with-motif + make + cd .. -mkdir buildgtk -cd buildgtk -../configure --with-gtk -make -cd .. + mkdir buildgtk + cd buildgtk + ../configure --with-gtk + make + cd .. -mkdir buildgtkd -cd buildgtkd -../configure --with-gtk --enable-debug -make -cd .. + mkdir buildgtkd + cd buildgtkd + ../configure --with-gtk --enable-debug + make + cd .. Note that since wxWidgets-2.6.0 you can install all those libraries concurrently, you just need to pass the appropriate flags when using them. -* The simplest errors +The simplest errors {#motif_error_simple} --------------------- You get errors during compilation: The reason is that you probably have a @@ -115,18 +117,18 @@ GCC 2.95 or later. You get immediate segfault when starting any sample or application: This is either due to having compiled the library with different flags or options than -your program - typically you might have the __WXDEBUG__ option set for the +your program - typically you might have the `__WXDEBUG__` option set for the library but not for your program - or due to using a compiler with optimisation bugs. -* The simplest program +The simplest program {#motif_simple_app} ---------------------- Now create your super-application myfoo.app and compile anywhere with -g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo -* General +General {#motif_general} --------- The Unix variants of wxWidgets use GNU configure. If you have problems with @@ -134,7 +136,7 @@ your make use GNU make instead. If you have general problems with installation, see the wxWidgets website at - https://www.wxwidgets.org/ +https://www.wxwidgets.org/ for newest information. If you still don't have any success, please send a bug report to one of our mailing lists (see my homepage) INCLUDING A DESCRIPTION OF @@ -142,7 +144,7 @@ YOUR SYSTEM AND YOUR PROBLEM, SUCH AS YOUR VERSION OF MOTIF, WXMOTIF, WHAT DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect, but I tried... -* GUI libraries +GUI libraries {#motif_libs_gui} --------------- wxWidgets/Motif requires the Motif library to be installed on your system. As @@ -151,9 +153,9 @@ most of the Motif API without the licence restrictions of Motif. You can get the newest version of the Lesstif from the lesstif homepage at: - http://lesstif.sourceforge.net/ +http://lesstif.sourceforge.net/ -* Additional libraries +Additional libraries {#motif_libs_misc} ---------------------- wxWidgets/Motif requires a thread library and X libraries known to work with @@ -164,14 +166,14 @@ correct glibc 2 support. You can disable thread support by running -./configure --disable-threads -make -su -make install -ldconfig -exit + ./configure --disable-threads + make + su + make install + ldconfig + exit -* Building wxMotif on Cygwin +Building wxMotif on Cygwin {#motif_cygwin} ---------------------------- The normal build instructions should work fine on Cygwin. The one difference @@ -185,10 +187,11 @@ will see linking errors. If this happens then you can work around the problem by setting LDFLAGS=-Wl,--export-all-symbols. Please also let us know about it on the wx-dev mailing list. -* Create your configuration +Create your configuration {#motif_config} --------------------------- Usage: + ./configure [options] If you want to use system's C and C++ compiler, @@ -216,7 +219,7 @@ Configure will complain if the system variable OSTYPE has not been defined. And Make in some circumstances as well... -* General options +General options {#motif_options} ------------------- Given below are the commands to change the default behaviour, @@ -289,7 +292,7 @@ The following options handle the kind of library you want to build. must be compiled with the same debug options. -* Feature Options +Feature Options {#motif_feature_options} ----------------- Many of the configure options have been thoroughly tested @@ -338,7 +341,7 @@ Please see the output of "./configure --help" for comprehensive list of all configurable options. -* Compiling +Compiling {#motif_compile} ----------- The following must be done in the base directory (e.g. ~/wxMotif @@ -374,41 +377,41 @@ object-files: in the various directories will do the work for you. -* Creating a new Project +Creating a new Project {#motif_new_project} ------------------------ -1) The first way uses the installed libraries and header files +1. The first way uses the installed libraries and header files automatically using wx-config -g++ myfoo.cpp `wx-config --libs` `wx-config --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs` `wx-config --cxxflags` -o myfoo -Using this way, a make file for the minimal sample would look -like this + Using this way, a make file for the minimal sample would look + like this -CXX = g++ + CXX = g++ -minimal: minimal.o - $(CXX) -o minimal minimal.o `wx-config --libs` + minimal: minimal.o + $(CXX) -o minimal minimal.o `wx-config --libs` -minimal.o: minimal.cpp - $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o + minimal.o: minimal.cpp + $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o -clean: - rm -f *.o minimal + clean: + rm -f *.o minimal -If your application uses only some of wxWidgets libraries, you can -specify required libraries when running wx-config. For example, -`wx-config --libs=html,core` will only output link command to link -with libraries required by core GUI classes and wxHTML classes. See -the manual for more information on the libraries. + If your application uses only some of wxWidgets libraries, you can + specify required libraries when running wx-config. For example, + `wx-config --libs=html,core` will only output link command to link + with libraries required by core GUI classes and wxHTML classes. See + the manual for more information on the libraries. -2) The other way creates a project within the source code +2. The other way creates a project within the source code directories of wxWidgets. For this endeavour, you'll need GNU autoconf version 2.14 and add an entry to your Makefile.in to the bottom of the configure.in script and run autoconf and configure before you can type make. -* Further notes by Julian Smart +Further notes by Julian Smart {#motif_notes} --------------------------------- - You may find the following script useful for compiling wxMotif, @@ -416,25 +419,23 @@ and configure before you can type make. permissions). Make this script executable with the command chmod a+x makewxmotif. - -------:x-----Cut here-----:x----- - # makewxmotif - # Sets permissions (in case we extracted wxMotif from zip files) - # and makes wxMotif. - # Call from top-level wxWidgets directory. - # Note that this uses standard (but commonly-used) configure options; - # if you're feeling brave, you may wish to compile with threads: - # if they're not supported by the target platform, they will be disabled - # anyhow - # -- Julian Smart - chmod a+x configure config.sub config.guess - ./configure --with-shared --with-motif --with-debug_flag --with-debug_info --enable-debug --without-threads --without-sockets --without-odbc - make - -------:x-----Cut here-----:x----- + # makewxmotif + # Sets permissions (in case we extracted wxMotif from zip files) + # and makes wxMotif. + # Call from top-level wxWidgets directory. + # Note that this uses standard (but commonly-used) configure options; + # if you're feeling brave, you may wish to compile with threads: + # if they're not supported by the target platform, they will be disabled + # anyhow + # -- Julian Smart + chmod a+x configure config.sub config.guess + ./configure --with-shared --with-motif --with-debug_flag --with-debug_info --enable-debug --without-threads --without-sockets --without-odbc + make This script will build wxMotif using shared libraries. If you want to build a static wxWidgets library, use --disable-shared. -Troubleshooting +Troubleshooting {#motif_troubleshoot} --------------- - Solaris compilation with gcc: if the compiler has problems with the variable @@ -458,20 +459,10 @@ Troubleshooting If you find any incorrect instances, though, such as a missing 'const' in an overridden function, please let us know. -Other Notes +Other Notes {#motif_misc} ----------- - Using configure will create a release build of the library by default: it's recommended to use --enable-debug configure switch while developing your application. To compile in non-debug mode, use --disable-debug configure switch. - -Bug reports ------------ - -Please send bug reports with a description of your environment, -compiler and the error message(s) to the developers mailing list at: - - https://www.wxwidgets.org/support/mailing-lists/ - -Julian Smart, Robert Roebling and Vadim Zeitlin, November 1999. diff --git a/docs/x11/install.txt b/docs/x11/install.md similarity index 77% rename from docs/x11/install.txt rename to docs/x11/install.md index 61d252b010..579bd88fc8 100644 --- a/docs/x11/install.txt +++ b/docs/x11/install.md @@ -1,6 +1,8 @@ -wxWidgets for X11 installation +wxWidgets for X11 installation {#plat_x11_install} ------------------------------ +[TOC] + IMPORTANT NOTE: If you experience problems installing, please re-read these @@ -13,7 +15,7 @@ IMPORTANT NOTE: using (including the beta) and what compiler on what system. One example: wxX11 2.8.0, gcc 2.95.4, Redhat 6.2 -First steps +First steps {#x11_first_steps} ----------- - Download wxX11-x.y.z.tgz, where x.y.z is the version number. @@ -34,38 +36,38 @@ First steps information about your platform and the (relevant part of) contents of config.log file). -COMPILING USING CONFIGURE +Compiling using configure {#x11_configure} ========================= -* The simplest case +The simplest case {#x11_simple} ------------------- If you compile wxWidgets on Linux for the first time and don't like to read install instructions just do (in the base dir): -> ./configure --with-x11 -> make -> su -> make install -> ldconfig -> exit + > ./configure --with-x11 + > make + > su + > make install + > ldconfig + > exit Afterwards you can continue with -> make -> su -> make install -> ldconfig -> exit + > make + > su + > make install + > ldconfig + > exit If you want to remove wxWidgets on Unix you can do this: -> su -> make uninstall -> ldconfig -> exit + > su + > make uninstall + > ldconfig + > exit -* The expert case +The expert case {#x11_expert} ----------------- If you want to do some more serious cross-platform programming with wxWidgets, @@ -80,25 +82,25 @@ that purpose. For building three versions (one GTK, one X11 and a debug version of the GTK source) you'd do this: -md buildx11 -cd buildx11 -../configure --with-x11 -make -cd .. + md buildx11 + cd buildx11 + ../configure --with-x11 + make + cd .. -md buildgtk -cd buildgtk -../configure --with-gtk -make -cd .. + md buildgtk + cd buildgtk + ../configure --with-gtk + make + cd .. -md buildgtkd -cd buildgtkd -../configure --with-gtk --enable-debug_flag -make -cd .. + md buildgtkd + cd buildgtkd + ../configure --with-gtk --enable-debug_flag + make + cd .. -* The simplest errors +The simplest errors {#x11_errors} --------------------- You get errors during compilation: The reason is that you probably have a @@ -108,18 +110,18 @@ GCC 2.95 or later. You get immediate segfault when starting any sample or application: This is either due to having compiled the library with different flags or options than -your program - typically you might have the __WXDEBUG__ option set for the +your program - typically you might have the `__WXDEBUG__` option set for the library but not for your program - or due to using a compiler with optimisation bugs. -* The simplest program +The simplest program {#x11_simple_app} ---------------------- Now create your super-application myfoo.cpp and compile anywhere with -g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo -* General +General {#x11_general} --------- The Unix variants of wxWidgets use GNU configure. If you have problems with @@ -127,19 +129,19 @@ your make use GNU make instead. If you have general problems with installation, see the wxWidgets website at - https://www.wxwidgets.org/ +https://www.wxwidgets.org/ for newest information. If you still don't have any success, please send a bug report to one of our mailing lists (see my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND YOUR PROBLEM, SUCH AS YOUR VERSION OF X, WHAT DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect, but I tried... -* GUI libraries +GUI libraries {#x11_libs_gui} --------------- wxWidgets/X11 requires the X11 library to be installed on your system. -* Additional libraries +Additional libraries {#x11_libs_misc} ---------------------- wxWidgets/X11 requires a thread library and X libraries known to work with @@ -150,14 +152,14 @@ many aspects. As of writing this, virtually all Linux distributions have You can disable thread support by running -./configure --disable-threads -make -su -make install -ldconfig -exit + ./configure --disable-threads + make + su + make install + ldconfig + exit -* Building wxX11 on Cygwin +Building wxX11 on Cygwin {#x11_cygwin} -------------------------- The normal build instructions should work fine on Cygwin. The one difference @@ -171,10 +173,11 @@ will see linking errors. If this happens then you can work around the problem by setting LDFLAGS=-Wl,--export-all-symbols. Please also let us know about it on the wx-dev mailing list. -* Create your configuration +Create your configuration {#x11_config} --------------------------- Usage: + ./configure [options] If you want to use system's C and C++ compiler, @@ -202,7 +205,7 @@ Configure will complain if the system variable OSTYPE has not been defined. And Make in some circumstances as well... -* General options +General options {#x11_options} ----------------- Given below are the commands to change the default behaviour, @@ -268,7 +271,7 @@ The following options handle the kind of library you want to build. must be compiled with the same debug options. -* Feature Options +Feature Options {#x11_feature_options} ----------------- Many of the configure options have been thoroughly tested @@ -320,7 +323,7 @@ Please see the output of "./configure --help" for comprehensive list of all configurable options. -* Compiling +Compiling {#x11_compiling} ----------- The following must be done in the base directory (e.g. ~/wxX11 @@ -356,44 +359,44 @@ object-files: in the various directories will do the work for you. -* Creating a new Project +Creating a new Project {#x11_new_app} ------------------------ -1) The first way uses the installed libraries and header files +1. The first way uses the installed libraries and header files automatically using wx-config -g++ myfoo.cpp `wx-config --libs` `wx-config --cxxflags` -o myfoo + g++ myfoo.cpp `wx-config --libs` `wx-config --cxxflags` -o myfoo -Using this way, a make file for the minimal sample would look -like this + Using this way, a make file for the minimal sample would look + like this -CXX = g++ + CXX = g++ -minimal: minimal.o - $(CXX) -o minimal minimal.o `wx-config --libs` + minimal: minimal.o + $(CXX) -o minimal minimal.o `wx-config --libs` -minimal.o: minimal.cpp - $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o + minimal.o: minimal.cpp + $(CXX) `wx-config --cxxflags` -c minimal.cpp -o minimal.o -clean: - rm -f *.o minimal + clean: + rm -f *.o minimal -This is certain to become the standard way unless we decide -to stick to tmake. + This is certain to become the standard way unless we decide + to stick to tmake. -If your application uses only some of wxWidgets libraries, you can -specify required libraries when running wx-config. For example, -`wx-config --libs=html,core` will only output link command to link -with libraries required by core GUI classes and wxHTML classes. See -the manual for more information on the libraries. + If your application uses only some of wxWidgets libraries, you can + specify required libraries when running wx-config. For example, + `wx-config --libs=html,core` will only output link command to link + with libraries required by core GUI classes and wxHTML classes. See + the manual for more information on the libraries. -2) The other way creates a project within the source code +2. The other way creates a project within the source code directories of wxWidgets. For this endeavour, you'll need GNU autoconf version 2.14 and add an entry to your Makefile.in to the bottom of the configure.in script and run autoconf and configure before you can type make. -* Further notes by Julian Smart +Further notes by Julian Smart {#x11_notes} ------------------------------- - You may find the following script useful for compiling wxX11, @@ -401,25 +404,23 @@ and configure before you can type make. permissions). Make this script executable with the command chmod a+x makewxx11. - -------:x-----Cut here-----:x----- - # makewxx11 - # Sets permissions (in case we extracted wxX11 from zip files) - # and makes wxX11. - # Call from top-level wxWidgets directory. - # Note that this uses standard (but commonly-used) configure options; - # if you're feeling brave, you may wish to compile with threads: - # if they're not supported by the target platform, they will be disabled - # anyhow - # -- Julian Smart - chmod a+x configure config.sub config.guess - ./configure --with-x11 --with-shared --with-debug_flag --with-debug_info --enable-debug --without-threads --without-sockets --without-odbc - make - -------:x-----Cut here-----:x----- + # makewxx11 + # Sets permissions (in case we extracted wxX11 from zip files) + # and makes wxX11. + # Call from top-level wxWidgets directory. + # Note that this uses standard (but commonly-used) configure options; + # if you're feeling brave, you may wish to compile with threads: + # if they're not supported by the target platform, they will be disabled + # anyhow + # -- Julian Smart + chmod a+x configure config.sub config.guess + ./configure --with-x11 --with-shared --with-debug_flag --with-debug_info --enable-debug --without-threads --without-sockets --without-odbc + make This script will build wxX11 using shared libraries. If you want to build a static wxWidgets library, use --disable-shared. -Troubleshooting +Troubleshooting {#x11_troubleshooting} --------------- - Solaris compilation with gcc: if the compiler has problems with the variable @@ -437,7 +438,7 @@ Troubleshooting If you find any incorrect instances, though, such as a missing 'const' in an overridden function, please let us know. -Other Notes +Other Notes {#x11_misc_notes} ----------- - Debugging mode is switched on by default in the makefiles, but using @@ -448,11 +449,3 @@ Other Notes configure system, change --with-debug_flag to --without-debug_flag and --with-debug_info to --without-debug_info in the makewxx11 script). - -Bug reports ------------ - -Please send bug reports with a description of your environment, -compiler and the error message(s) to the developers mailing list at: - - https://www.wxwidgets.org/support/mailing-lists/ From 26b2e9f5c7326727a55ae12c6bb9fd491f2ce2b4 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 3 Oct 2018 22:13:31 +0200 Subject: [PATCH 5/5] Add information on how to use pre-built MSW binaries to doxygen The text is collected from docs/contributing/release.md and the blog post explaining usage of binaries. --- docs/doxygen/mainpages/platdetails.h | 2 + docs/msw/binaries.md | 90 ++++++++++++++++++++++++++++ docs/msw/install.md | 6 +- 3 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 docs/msw/binaries.md diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h index 40df3949c4..4330322178 100644 --- a/docs/doxygen/mainpages/platdetails.h +++ b/docs/doxygen/mainpages/platdetails.h @@ -108,6 +108,8 @@ with a Linux-hosted MinGW32 tool chain. @subpage plat_msw_install "Build and Install Instructions" +@subpage plat_msw_binaries "Using pre-built binaries" + @subsection page_port_wxmsw_resources Resources and Application Icon All applications using wxMSW should have a Windows resource file (@c .rc diff --git a/docs/msw/binaries.md b/docs/msw/binaries.md new file mode 100644 index 0000000000..e5aceba9c3 --- /dev/null +++ b/docs/msw/binaries.md @@ -0,0 +1,90 @@ +How to use wxMSW binaries {#plat_msw_binaries} +========================= + +[TOC] + +Supported Compilers +------------------- +We provide pre-built binary files for the following compilers: + +* Microsoft Visual C++ compiler versions 9.0, 10.0, 11.0, 12.0, 14.0 and 14.1 + (corresponding to marketing product names of Microsoft Visual Studio 2008, 2010, 2012, 2013, 2015 and 2017 respectively). +* TDM-GCC version 5.1 and MinGW-w64 version 7.2 (with the default SJLJ + exceptions propagation method, using C++11). Please note that you need to use + the very latest MinGW-w64 7.2 compiler release with this version of the + compiler which can be downloaded from + [here for 32 bits](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.2.0/threads-win32/sjlj/i686-7.2.0-release-win32-sjlj-rt_v5-rev1.7z/download) + and + [here for 64 bits](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.2.0/threads-win32/seh/x86_64-7.2.0-release-win32-seh-rt_v5-rev1.7z/download), + the older "rev0" release has a known bug affecting building wxWidgets in + some scenarios. + + +Getting the files +----------------- + +First, you need to get the correct files. You will always need the +`wxWidgets-3.1.1-headers.7z` one but the rest depends on your compiler version +and architecture: as different versions of MSVC compiler are not binary +compatible, you should select the files with the correct +`vc80`, `vc90`, `vc100`, `vc110`, `vc120`, `vc140` or `vc141` +suffix depending on whether you use +Visual Studio 2005, 2008, 2010, 2012, 2013, 2015 or 2017 respectively. +You also need to decide whether you use the `x64` files for 64-bit development +or the ones without this suffix for the still more common 32-bit builds. After +determining the combination of suffixes you need, you should download the +"Dev" and the "ReleaseDLL" files in addition to the "Headers" one above, +e.g. for 32-bit MSVS 2017 development you need +`wxMSW-3.1.1_vc141_Dev.7z` and `wxMSW-3.1.1_vc141_ReleaseDLL.7z`. + +All binaries are available at: + +https://github.com/wxWidgets/wxWidgets/releases/v3.1.1 + +Once you have the files you need, unzip all of them into the same directory, for +example `c:\wx\3.1.1`. You should have only include and lib subdirectories under +it, nothing else. To avoid hard-coding this path into your projects, define +`wxwin` environment variable containing it: although it's a little known fact, +all versions of MSVC support environment variable expansion in the C++ projects +(but not, unfortunately, in the solution files). + +Using Binaries with Visual Studio +--------------------------------- + +Next step is to set up your project to use these files. You need to do the +following: + +* In the compiler options, i.e. "C/C++" properties: + * Add `$(wxwin)/include/msvc;$(wxwin)/include` to the "Additional Include + Directories". Notice that the order is important here, putting the + MSVC-specific directory first ensures that you use `wx/setup.h` + automatically linking in wxWidgets libraries. + * Add `WXUSINGDLL` and `wxMSVC_VERSION_AUTO` to the list of defined + symbols in "Preprocessor Definitions". The first should be + self-explanatory (we only provide DLLs, not static libraries) while the + second one is necessary to use the libraries from e.g. `lib\vc100_dll` + directory and not the default `lib\vc_dll`. + * Also check that `_UNICODE` and `UNICODE` symbols are defined in the same + "Preprocessor Definitions" section. This should already be the case for + the newly created projects but it might be necessary to add them if + you're upgrading an existing one. + * Check that you use "Multi-threaded \[Debug\] DLL" in the "Run-time + library" option under "Code Generation" to ensure that your build uses + the same CRT version as our binaries. +* In the linker options you only need to add `$(wxwin)\lib\vc141_dll` (with + the compiler-version-dependent suffix, of course) to "Additional Library + Directories" under "Linker\\General" in the options. Thanks to the use of + MSVC-specific `setup.h` you don't need to list wxWidgets libraries manually, + i.e. you do **not** need to put anything in the list of "Additional + Dependencies". + +Now you should be able to build your project successfully, both in "Debug" and +"Release" configurations. With MSVS 10 or newer it can also be done from the +command line using `msbuild.exe`. Of course, to run the generated executable +you will need to either add the directory containing wxWidgets DLLs to your PATH +or copy the DLL files to a directory already on it. Finally, if you want to +distribute the binaries created using these options, you will need to install +Microsoft Visual C++ run-time DLLs. Again, MSVC 10 or newer has an advantage +here as you can simply copy `msvcp100.dll` and `msvcr100.dll` as any other DLL, +while you need to install specially for the previous compiler versions that +use WinSxS ("side-by-side") for them. diff --git a/docs/msw/install.md b/docs/msw/install.md index 6e6e5f1146..2399ffbbe2 100644 --- a/docs/msw/install.md +++ b/docs/msw/install.md @@ -9,10 +9,8 @@ including both 32 bit and 64 bit versions. Installation {#msw_install} ============ -If you are using one of the supported compilers, you can download the -pre-built in binaries from - -https://github.com/wxWidgets/wxWidgets/releases/v3.1.1 +If you are using one of the supported compilers, you can use +[pre-built binaries](@ref plat_msw_binaries). In this case, just uncompress the binaries archive under any directory and skip to [Building Applications Using wxWidgets](#msw_build_apps) part.