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, gtk2, sdl2, and Qt
15 - Official pre-made msys2 environment supports only gtk3-client build
19 ====================================
21 This chapter is about creating new msys2 build environment.
23 If you want to reproduce more official freeciv builds, the environment
24 used to make those builds is documented in the next chapter ("Premade environment"),
25 with listing of versions current at the time of this freeciv version.
27 1) Install MSYS2 following the documentation on their homepage
30 https://sourceforge.net/projects/msys2/files/Base/i686/msys2-i686-20160205.exe
32 https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-x86_64-20160205.exe
35 1.2) Run it to install MSYS2 on build system
37 1.3) Launch msys2_shell to update packages
40 2) Install following packages with 'pacman -Su'
41 As of 22-Sep-16, one has to use also '--force' option.
43 2.1) Packages needed for building freeciv
44 These packages are needed even if you don't plan to make installer,
45 but only build freeciv for local use.
47 2.1.1) Arch independent packages needed for building freeciv
49 2.1.1.1) Arch independent packages always needed for building freeciv
50 With these packages it's possible to build freeciv source tree that
51 has already such generated files present that are created for the
58 2.1.1.2) Arch independent packages needed for getting and extracting freeciv
63 2.1.1.3) Arch independent packages needed for building freeciv from svn checkout
64 These are needed in addition to the ones always needed for building freeciv.
72 2.1.2) Arch-specific packages needed for building freeciv
74 2.1.2.1) Arch-specific packages for building common parts
75 - mingw-w64-i686-gcc / mingw-w64-x86_64-gcc
76 - mingw-w64-i686-curl / mingw-w64-x86_64-curl
77 - mingw-w64-i686-bzip2 / mingw-w64-x64_64-bzip2
78 - mingw-w64-i686-readline / mingw-w64-x86_64-readline
79 - mingw-w64-i686-SDL2_mixer / mingw-w64-x86_64-SDL2_mixer
81 2.1.2.2) Arch-specific packages for building gtk3-client
82 - mingw-w64-i686-gtk3 / mingw-w64-x86_64-gtk3
84 2.1.2.3) Arch-specific packages for buildind Qt-client and/or Ruledit
85 - mingw-w64-i686-qt5 / mingw-w64-x86_64-qt5
87 2.1.2.4) Arch-specific packages for building gtk2-client
88 - mingw-w64-i686-gtk2 / mingw-w64-x86_64-gtk2
90 2.1.2.5) Arch-specific packages for building sdl2-client
91 - mingw-w64-i686-SDL2_image / mingw-w64-x86_64-SDL2_image
92 - mingw-w64-i686-SDL2_ttf / mingw-w64-x86_64-SDL2_ttf
93 - mingw-w64-i686-SDL2_gfx / mingw-w64-x86_64-SDL2_gfx
95 2.2) Packages needed for building installer package
96 These are needed in addition to above ones used in the
97 building step already.
99 2.2.1) Arch-specific packages needed for building installer
102 - mingw-w64-i686-nsis / mingw-w64-x86_64-nsis
110 ====================================
112 Premade msys2 environment is available for download from
113 http://download.gna.org/freeciv/packages/windows/testing/cazfi/installer_msys2/envs/
119 msys2-freeciv-win64-160922.7z, based on
120 https://sourceforge.net/projects/msys2/files/Base/x86-64/msys2-x86_64-20160921.exe
122 Only win64 target is included - replace <arch> with 'x86_64' in package names below
125 Following packages have been installed:
136 - mingw-w64-<arch>-gcc
137 - mingw-w64-<arch>-icu
138 - mingw-w64-<arch>-curl
139 - mingw-w64-<arch>-sqlite3
140 - mingw-w64-<arch>-gtk3
141 - mingw-w64-<arch>-nsis
142 - mingw-w64-<arch>-bzip2
143 - mingw-w64-<arch>-readline
144 - mingw-w64-<arch>-SDL2_mixer
145 - mingw-w64-<arch>-SDL2_image
146 - mingw-w64-<arch>-SDL2_ttf
147 - mingw-w64-<arch>-SDL2_gfx
148 - mingw-w64-<arch>-qt5
152 ====================================
154 Launch msys2 shell. Get the freeciv sources there
155 somehow. Some options are:
156 1) Download freeciv tarball within msys2 shell with wget
157 2) Use svn within msys2 shell to get them from version control
158 3) Copy them from Windows folder where they are to a directory that
161 > cd win32/installer_msys2
165 - "<gui>-installer", where <gui> is
170 - "ruledit-installer"
171 - "snapshot", if your freeciv sources are in svn checkout directory
173 You can also set minimum Windows version targeted. While setting this
174 to an older version allows those Windows versions to run the created
175 executables, it may come with the cost of disabling functionality that
176 newer Windows versions could otherwise have.
177 The version is set via MIN_WIN_VER variable. For values to use, see
178 list in: https://msdn.microsoft.com/en-us/library/6sehtctf.aspx
179 Current default is 0x0600 (Windows Vista).
184 ====================================
186 - Freeciv linked against readline in msys2 does not work.
187 Configure freeciv with --without-readline
191 ====================================