Open main menu

Difference between revisions of "Compiling ScummVM/MinGW-w64"

m
Line 8: Line 8:
We don't recommend using this method if you want to distribute your ScummVM builds. Release builds should be done using [[Compiling ScummVM/MXE|MXE]] if possible, since this allows building an (almost) statically linked executable for easy distribution. Feel free to contact me (rootfather) either via eMail or IRC if you have questions regarding MSYS2/MinGW-w64.
We don't recommend using this method if you want to distribute your ScummVM builds. Release builds should be done using [[Compiling ScummVM/MXE|MXE]] if possible, since this allows building an (almost) statically linked executable for easy distribution. Feel free to contact me (rootfather) either via eMail or IRC if you have questions regarding MSYS2/MinGW-w64.
|}
|}


{| border="0" cellpadding="1" cellspacing="2" style="margin-left:5em; background:#FF9999; width:80%"
{| border="0" cellpadding="1" cellspacing="2" style="margin-left:5em; background:#FF9999; width:80%"
Line 19: Line 18:
If you need to support older Windows, check out [[Compiling_ScummVM/MinGW|MinGW]].
If you need to support older Windows, check out [[Compiling_ScummVM/MinGW|MinGW]].
|}
|}


== Prepare your build environment ==
== Prepare your build environment ==
Line 50: Line 47:


=== Install modified curl package ===
=== Install modified curl package ===
The default curl version shipped with MSYS2 relies on an external certificate bundle for verifying SSL/TLS certificates. While this works fine in the mingw-w64 shell itself, it will break SSL verification outside the mingw-w64 shell. Since our cloud integration features rely on a working SSL implementation, we need to build our own curl release. Thanks to the PKGBUILD already provided by the MSYS2/Mingw-w64 developers, this is pretty straight forward.
The default curl version shipped with MSYS2 relies on an external certificate bundle for verifying SSL/TLS certificates. While this works fine in the mingw-w64 shell itself, it will break SSL verification outside the mingw-w64 shell. Since our cloud integration features rely on a working SSL implementation, we need to build our own curl release using the winssl backend instead. WinSSL - as the name implies - is the SSL/TLS library shipped withing Windows itself, so we can rely on the Windows certificate store.
 
Thanks to the PKGBUILD already provided by the MSYS2/Mingw-w64 developers, this is pretty straight forward.


First, we need to install a few dependencies. This has to be don in the MSYS2 shell.
First, clone the repository containing the mingw-w64 package files in a seperate directory:
pacman -S msys/openssl-devel msys/libmetalink-devel
  git clone <nowiki>https://github.com/msys2/MINGW-packages</nowiki>
Next, clone the repository containing the mingw-w64 package files in a seperate directory:
Now, we need to modify the file mingw-w64-curl/PKGBUILD which contains all the instructions makepkg uses for building the final package. At the beginning of the file, select the winssl variant instead of the default openssl version.
  git clone https://github.com/msys2/MINGW-packages
#_variant=-openssl
_variant=-winssl
#_variant=-gnutls
Since support for METALINK seems to be broken at the moment (and we don't need it), modify the PKGBUILD file as shown below:
  79   if [ "${_variant}" = "-winssl" ]; then
...
  86     _variant_config+=("--without-librtmp")
  87     _variant_config+=("--without-libmetalink")


== Let's get compiling! ==
== Let's get compiling! ==
333

edits