Merge branch 'build-docs'
Improve installation and build documentation. See https://github.com/wxWidgets/wxWidgets/pull/2319 Closes #18720.
This commit is contained in:
@@ -18,20 +18,20 @@ topics related to building applications with wxWidgets.
|
|||||||
|
|
||||||
@section page_topics_starting Starting with wxWidgets
|
@section page_topics_starting Starting with wxWidgets
|
||||||
|
|
||||||
@li @subpage overview_referencenotes
|
@li @subpage overview_install
|
||||||
@li @subpage overview_roughguide
|
|
||||||
@li @subpage overview_helloworld
|
@li @subpage overview_helloworld
|
||||||
@li @subpage overview_cmake
|
@li @subpage overview_roughguide
|
||||||
|
@li @subpage overview_referencenotes
|
||||||
|
|
||||||
@section page_topics_programming Important wxWidgets Topics
|
@section page_topics_programming Conceptual Overviews
|
||||||
|
|
||||||
@li @subpage overview_app
|
@li @subpage overview_app
|
||||||
@li @subpage overview_unicode
|
|
||||||
@li @subpage overview_i18n
|
|
||||||
@li @subpage overview_events
|
@li @subpage overview_events
|
||||||
@li @subpage overview_windowsizing
|
@li @subpage overview_windowsizing
|
||||||
@li @subpage overview_windowids
|
@li @subpage overview_windowids
|
||||||
@li @subpage overview_log
|
@li @subpage overview_log
|
||||||
|
@li @subpage overview_unicode
|
||||||
|
@li @subpage overview_i18n
|
||||||
|
|
||||||
@section page_topics_nongui Non-GUI Classes
|
@section page_topics_nongui Non-GUI Classes
|
||||||
|
|
||||||
|
@@ -14,6 +14,9 @@
|
|||||||
This page shows a very simple wxWidgets program that can be used as a skeleton
|
This page shows a very simple wxWidgets program that can be used as a skeleton
|
||||||
for your own code. While it does nothing very useful, it introduces a couple of
|
for your own code. While it does nothing very useful, it introduces a couple of
|
||||||
important concepts and explains how to write a working wxWidgets application.
|
important concepts and explains how to write a working wxWidgets application.
|
||||||
|
Trying building and running this application is also a good way of checking
|
||||||
|
that wxWidgets is correctly installed on your system. And if you haven't
|
||||||
|
installed wxWidgets yet, please @ref overview_install "do it first".
|
||||||
|
|
||||||
Note that this simple example creates the UI entirely from C++ code which is
|
Note that this simple example creates the UI entirely from C++ code which is
|
||||||
fine for a simple example, but more realistic examples will typically define
|
fine for a simple example, but more realistic examples will typically define
|
||||||
|
117
docs/doxygen/overviews/install.md
Normal file
117
docs/doxygen/overviews/install.md
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
Installing wxWidgets {#overview_install}
|
||||||
|
====================
|
||||||
|
|
||||||
|
wxWidgets headers and libraries must be available in order to build the
|
||||||
|
applications using it, so the first step when starting to use wxWidgets is to
|
||||||
|
install it. This can be done, for all platforms and library versions, by
|
||||||
|
building wxWidgets from sources, but for the most common platforms pre-built
|
||||||
|
binaries of the libraries are also provided, so the first decision to make is
|
||||||
|
whether to use these binaries or build the library yourself. Building the
|
||||||
|
libraries yourself allows you to compile the latest version using exactly the
|
||||||
|
options you need, and so is the most flexible solution, but using the binaries
|
||||||
|
may be simpler and faster -- the choice is yours, just follow the instructions
|
||||||
|
in the corresponding section below depending on the approach you prefer. Of
|
||||||
|
course, you only need to do one _or_ the other, _not_ both.
|
||||||
|
|
||||||
|
|
||||||
|
Using Binaries
|
||||||
|
--------------
|
||||||
|
|
||||||
|
How to install binaries depends on your platform:
|
||||||
|
|
||||||
|
- For Microsoft Windows (MSW), wxWidgets project provides official binaries
|
||||||
|
on the [Downloads page](http://www.wxwidgets.org/downloads/), please see
|
||||||
|
the [instructions for using them](@ref plat_msw_binaries).
|
||||||
|
|
||||||
|
- For Linux, and other free Unix-like systems, wxWidgets packages are available
|
||||||
|
in system repositories under the name "wxGTK". Note that to develop
|
||||||
|
applications using wxWidgets you may need to install the "development"
|
||||||
|
packages and not just the libraries needed for running the applications using
|
||||||
|
wxWidgets. For example, under Debian and Debian-derived systems such as
|
||||||
|
Ubuntu, you need to run `apt get libwxgtkX.Y-dev`.
|
||||||
|
|
||||||
|
- For macOS, wxWidgets is available in third-party package managers such as
|
||||||
|
[brew][1] or [MacPorts][2], and you can install them in the usual way.
|
||||||
|
|
||||||
|
[1]: https://brew.sh/
|
||||||
|
[2]: https://www.macports.org/
|
||||||
|
|
||||||
|
|
||||||
|
Additionally, some third-party C++ package managers also provide wxWidgets
|
||||||
|
binaries. For example, please see [this post][3] for the instructions about
|
||||||
|
using [vcpkg][4] C++ package manager for installing wxWidgets.
|
||||||
|
|
||||||
|
[3]: https://www.wxwidgets.org/blog/2019/01/wxwidgets-and-vcpkg/
|
||||||
|
[4]: https://github.com/microsoft/vcpkg
|
||||||
|
|
||||||
|
|
||||||
|
Building from Source
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
### Getting the sources
|
||||||
|
|
||||||
|
To build the library you need to get its sources first. The recommended way to
|
||||||
|
do it is to use Git to check them out from the official wxWidgets repository
|
||||||
|
using the following command:
|
||||||
|
|
||||||
|
$ git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git
|
||||||
|
|
||||||
|
Alternatively, you can download the sources from the [downloads page][1].
|
||||||
|
Please note that all the source archives in different formats (ZIP, 7z,
|
||||||
|
tar.bz2) contain the same files, but use different line ending formats: Unix
|
||||||
|
("LF") for the latter one and DOS ("CR LF") for the two other ones, and it is
|
||||||
|
usually preferable to choose the format corresponding to the current platform.
|
||||||
|
When downloading the sources with DOS ends of lines, prefer 7z format for much
|
||||||
|
smaller file size.
|
||||||
|
|
||||||
|
|
||||||
|
### Selecting the build system
|
||||||
|
|
||||||
|
wxWidgets can be built using [CMake](https://cmake.org/) under all platforms.
|
||||||
|
Please follow [CMake build instructions](@ref overview_cmake) if you prefer to
|
||||||
|
use it.
|
||||||
|
|
||||||
|
Otherwise, please use the appropriate instructions depending on your platform:
|
||||||
|
|
||||||
|
- For native wxMSW port under [Microsoft Windows](@ref plat_msw_install).
|
||||||
|
- For wxGTK under [Linux and other Unix-like systems](@ref plat_gtk_install).
|
||||||
|
- For native wxOSX port under [macOS](@ref plat_osx_install).
|
||||||
|
|
||||||
|
The wxWidgets ports mentioned above are the main ones, however other variants
|
||||||
|
also exist, see [platform details](@ref page_port) page for the full list.
|
||||||
|
|
||||||
|
|
||||||
|
Verifying the Installation
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
After installing wxWidgets, it is recommended to check that the library can
|
||||||
|
actually be used by building a minimal wxWidgets program using it, such as
|
||||||
|
`samples/minimal/minimal.cpp` included in wxWidgets distributions.
|
||||||
|
|
||||||
|
You may choose to build this program in any of the following ways:
|
||||||
|
|
||||||
|
- Directly from command line under any Unix-like systems, including macOS and
|
||||||
|
Unix-like environments such as Cygwin or MSYS2 under MSW, just run
|
||||||
|
|
||||||
|
$ c++ -o minimal minimal.cpp `wx-config --cxxflags --libs`
|
||||||
|
|
||||||
|
Please note that you *must* use `wx-config` to obtain the compiler and linker
|
||||||
|
flags in this case.
|
||||||
|
|
||||||
|
- Using CMake, and the provided `samples/minimal/CMakeLists.txt` file.
|
||||||
|
|
||||||
|
- Using Microsoft Visual Studio IDE: simply create a new project and add the
|
||||||
|
provided `wxwidgets.props` property sheet file to it as explained in the
|
||||||
|
[instructions](@ref #msw_build_apps) and build the project as usual.
|
||||||
|
|
||||||
|
- Using another IDE with wxWidgets support, such as [Code::Blocks][1] or
|
||||||
|
[CodeLite][2], please use the IDE wizards.
|
||||||
|
|
||||||
|
[1]: https://www.codeblocks.org/
|
||||||
|
[2]: https://codelite.org/
|
||||||
|
|
||||||
|
- If you use another IDE, under Unix you should run `wx-config --cxxflags` and
|
||||||
|
`wx-config --libs` commands separately and copy-and-paste their output to the
|
||||||
|
"Additional preprocessor options" and "Additional linker options" fields in
|
||||||
|
your IDE, respectively. Under MSW systems you need to configure the IDE using
|
||||||
|
the instructions in the ["manual setup"](@ref #msw_build_apps) section.
|
@@ -255,6 +255,11 @@ n:
|
|||||||
string iterators instead if possible or replace this expression with
|
string iterators instead if possible or replace this expression with
|
||||||
@code s.c_str() + n @endcode otherwise.
|
@code s.c_str() + n @endcode otherwise.
|
||||||
|
|
||||||
|
- When using C++11 range-based for loop, the natural construct for iterating
|
||||||
|
over wxString @code for ( auto& ch: s ) @endcode doesn't compile because of
|
||||||
|
the unusual iterator type and @code for ( wxUniCharRef ch: s ) @endcode
|
||||||
|
needs to be used instead.
|
||||||
|
|
||||||
Another class of problems is related to the fact that the value returned by
|
Another class of problems is related to the fact that the value returned by
|
||||||
@c c_str() itself is also not just a pointer to a buffer but a value of helper
|
@c c_str() itself is also not just a pointer to a buffer but a value of helper
|
||||||
class wxCStrData which is implicitly convertible to both narrow and wide
|
class wxCStrData which is implicitly convertible to both narrow and wide
|
||||||
|
Reference in New Issue
Block a user