wxWidgets/docs/msw/msys2-gtk.txt
Tim S 7f4035dc5b Update instructions for building under MSys2
Added "--needed --noconfirm" to pacman for faster package updating.
2017-11-05 16:47:17 +01:00

112 lines
3.9 KiB
Plaintext

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 ../..