2 MSYS2 Windows Installer build notes
3 ====================================
5 This document is about building Freeciv Windows Installer packages
6 using MSYS2 from http://msys2.github.io
10 ====================================
12 - Msys1, not msys2, is still the official freeciv Windows Installer
14 - Buildable clients are gtk3, gtk3.22, gtk2, sdl2, and Qt
15 - Official pre-made msys2 environment supports only gtk3-, gtk3.22- and
20 ====================================
22 This chapter is about creating new msys2 build environment.
24 If you want to reproduce more official freeciv builds, the environment
25 used to make those builds is documented in the next chapter ("Premade environment"),
26 with listing of versions current at the time of this freeciv version.
28 1) Install MSYS2 following the documentation on their homepage
31 https://sourceforge.net/projects/msys2/files/Base/i686/msys2-i686-20160205.exe
33 https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-x86_64-20160205.exe
36 1.2) Run it to install MSYS2 on build system
38 1.3) Launch msys2_shell to update packages
41 2) Install following packages with 'pacman -Su'
42 As of 18-Oct-16, one has to use also '--force' option.
44 2.1) Packages needed for building freeciv
45 These packages are needed even if you don't plan to make installer,
46 but only build freeciv for local use.
48 2.1.1) Arch independent packages needed for building freeciv
50 2.1.1.1) Arch independent packages always needed for building freeciv
51 With these packages it's possible to build freeciv source tree that
52 has already such generated files present that are created for the
59 2.1.1.2) Arch independent packages needed for getting and extracting freeciv
64 2.1.1.3) Arch independent packages needed for building freeciv from svn checkout
65 These are needed in addition to the ones always needed for building freeciv.
73 2.1.2) Arch-specific packages needed for building freeciv
75 2.1.2.1) Arch-specific packages for building common parts
76 - mingw-w64-i686-gcc / mingw-w64-x86_64-gcc
77 - mingw-w64-i686-curl / mingw-w64-x86_64-curl
78 - mingw-w64-i686-bzip2 / mingw-w64-x64_64-bzip2
79 - mingw-w64-i686-readline / mingw-w64-x86_64-readline
80 - mingw-w64-i686-SDL2_mixer / mingw-w64-x86_64-SDL2_mixer
82 2.1.2.2) Arch-specific packages for building gtk3- and gtk3.22-client
83 - mingw-w64-i686-gtk3 / mingw-w64-x86_64-gtk3
85 2.1.2.3) Arch-specific packages for buildind Qt-client and/or Ruledit
86 - mingw-w64-i686-qt5 / mingw-w64-x86_64-qt5
88 2.1.2.4) Arch-specific packages for building gtk2-client
89 - mingw-w64-i686-gtk2 / mingw-w64-x86_64-gtk2
91 2.1.2.5) Arch-specific packages for building sdl2-client
92 - mingw-w64-i686-SDL2_image / mingw-w64-x86_64-SDL2_image
93 - mingw-w64-i686-SDL2_ttf / mingw-w64-x86_64-SDL2_ttf
94 - mingw-w64-i686-SDL2_gfx / mingw-w64-x86_64-SDL2_gfx
96 2.2) Packages needed for building installer package
97 These are needed in addition to above ones used in the
98 building step already.
100 2.2.1) Arch-specific packages needed for building installer
103 - mingw-w64-i686-nsis / mingw-w64-x86_64-nsis
111 ====================================
113 Premade msys2 environment is available for download from
114 http://download.gna.org/freeciv/packages/windows/msys2/
120 msys2-freeciv-win64-161018.7z, based on
121 https://sourceforge.net/projects/msys2/files/Base/x86-64/msys2-x86_64-20160921.exe
123 Only win64 target is included - replace <arch> with 'x86_64' in package names below
126 Following packages have been installed:
138 - mingw-w64-<arch>-gcc
139 - mingw-w64-<arch>-icu
140 - mingw-w64-<arch>-curl
141 - mingw-w64-<arch>-sqlite3
142 - mingw-w64-<arch>-gtk3
143 - mingw-w64-<arch>-nsis
144 - mingw-w64-<arch>-bzip2
145 - mingw-w64-<arch>-readline
146 - mingw-w64-<arch>-SDL2_mixer
147 - mingw-w64-<arch>-SDL2_image
148 - mingw-w64-<arch>-SDL2_ttf
149 - mingw-w64-<arch>-SDL2_gfx
150 - mingw-w64-<arch>-qt5
154 ====================================
156 Launch msys2 shell. Get the freeciv sources there
157 somehow. Some options are:
158 1) Download freeciv tarball within msys2 shell with wget
159 2) Use svn within msys2 shell to get them from version control
160 3) Copy them from Windows folder where they are to a directory that
163 > cd win32/installer_msys2
167 - "<gui>-installer", where <gui> is
173 - "ruledit-installer"
174 - "snapshot", if your freeciv sources are in svn checkout directory
176 You can also set minimum Windows version targeted. While setting this
177 to an older version allows those Windows versions to run the created
178 executables, it may come with the cost of disabling functionality that
179 newer Windows versions could otherwise have.
180 The version is set via MIN_WIN_VER variable. For values to use, see
181 list in: https://msdn.microsoft.com/en-us/library/6sehtctf.aspx
182 Current default is 0x0601 (Windows 7).
187 ====================================
189 - Freeciv linked against readline in msys2 does not work.
190 Configure freeciv with --without-readline
194 ====================================