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

Jump to navigation Jump to search
m
m (Text replacement - "<source lang=" to "<syntaxhighlight lang=")
(3 intermediate revisions by 2 users not shown)
Line 28: Line 28:
=== Setup MinGW-w64 and MSYS2 ===
=== Setup MinGW-w64 and MSYS2 ===


You can find MSYS2 and installation instructions on the [[https://msys2.github.io/ MSYS2 webpage]].
You can find [[https://www.msys2.org/ MSYS2 on the official webpage]] and detailed installation instructions on the [[https://github.com/msys2/msys2/wiki/MSYS2-installation MSYS2 github wiki]].


==== Download and install the necessary packages ====
==== Download and install the necessary packages ====
Line 36: Line 36:
To do that, type the following in the MSYS2 terminal:
To do that, type the following in the MSYS2 terminal:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacman --noconfirm -Sy
pacman -Syuu
pacman --needed --noconfirm -S bash pacman pacman-mirrors msys2-runtime
</syntaxhighlight>
</syntaxhighlight>
Follow the instructions (one upgrade step may require that the MSYS2 terminal window is closed directly from the window's e(X)it button on the top right. Keep issuing the above command in the MSYS2 terminal until there's no more updating tasks to be done.


For i686 (32-bit), type the following in the MSYS2 terminal to automatically install all packages/libraries needed to compile ScummVM:
For i686 (32-bit), type the following in the MSYS2 terminal to automatically install all packages/libraries needed to compile ScummVM:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacman -S --needed --noconfirm base-devel git mingw-w64-i686-{curl,faad2,freetype,flac,fluidsynth,libjpeg-turbo,libogg,libvorbis,libmad,libmpeg2-git,libtheora,libpng,nasm,readline,SDL2,SDL2_net,toolchain,winsparkle,zlib}
pacman -S --needed --noconfirm base-devel git mingw-w64-i686-{a52dec,ccache,curl,faad2,freetype,flac,fluidsynth,libjpeg-turbo,libogg,libvorbis,libmad,libmpeg2-git,libtheora,libpng,nasm,readline,SDL2,SDL2_net,toolchain,winsparkle,zlib}
</syntaxhighlight>
</syntaxhighlight>


For x86_64 (64-bit), type the following in the MSYS2 terminal to automatically install all packages/libraries needed to compile ScummVM:
For x86_64 (64-bit), type the following in the MSYS2 terminal to automatically install all packages/libraries needed to compile ScummVM:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacman -S --needed --noconfirm base-devel git mingw-w64-x86_64-{curl,faad2,freetype,flac,fluidsynth,libjpeg-turbo,libogg,libvorbis,libmad,libmpeg2-git,libtheora,libpng,nasm,readline,SDL2,SDL2_net,toolchain,winsparkle,zlib}
pacman -S --needed --noconfirm base-devel git mingw-w64-x86_64-{a52dec,ccache,curl,faad2,freetype,flac,fluidsynth,libjpeg-turbo,libogg,libvorbis,libmad,libmpeg2-git,libtheora,libpng,nasm,readline,SDL2,SDL2_net,toolchain,winsparkle,zlib}
</syntaxhighlight>
</syntaxhighlight>


These commands will fetch and install the packages needed for compiling, including (but not limited to) GCC 6.x, GDB, and libwinpthread-git.
These commands will fetch and install the packages needed for compiling, including (but not limited to) GCC 9.x, GDB, and libwinpthread-git.


=== Install the needed libraries ===
=== Install the needed libraries ===
Line 64: Line 65:


* '''SDL2'''. Mandatory. ''We recently switched to SDL2. SDL 1 is still available as fallback option.''
* '''SDL2'''. Mandatory. ''We recently switched to SDL2. SDL 1 is still available as fallback option.''
* '''nasm'''. Optional, for faster compile of scalers.
* '''curl''' and '''SDL2_net'''. Optional, for cloud integration support.
* '''faad2'''. Optional, for AAC support.
* '''flac'''. Optional, for FLAC support.
* '''flac'''. Optional, for FLAC support.
* '''fluidsynth'''. Optional, for soundfont MIDI support.
* '''freetype'''. Optional, for TTF support.
* '''libjpeg-turbo'''. Optional, for JPEG support. Required for Groovie 2, Starship Titanic and Wintermute.
* '''libjpeg-turbo'''. Optional, for JPEG support. Required for Groovie 2, Starship Titanic and Wintermute.
* '''libmad'''. Optional, for MP3 support.
* '''libmpeg2-git'''. Optional, for MPEG2 cutscene support.
* '''libogg''' and '''libvorbis'''. Optional, for OGG support.
* '''libogg''' and '''libvorbis'''. Optional, for OGG support.
* '''libmad'''. Optional, for MP3 support.
* '''libpng'''. Optional, for PNG support.
* '''libmpeg2-svn'''. Optional, for MPEG2 cutscene support.
* '''zlib'''. Optional, for compressed saved games.
* '''libtheora'''. Optional, for Broken Sword 2.5.
* '''libtheora'''. Optional, for Broken Sword 2.5.
* '''faad2'''. Optional, for AAC support.
* '''nasm'''. Optional, for faster compile of scalers.
* '''libpng'''. Optional, for PNG support.
* '''freetype'''. Optional, for TTF support.
* '''fluidsynth'''. Optional, for soundfont MIDI support.
* '''curl''' and '''SDL2_net'''. Optional, for cloud integration support.
* '''winsparkle'''. Optional, for application updates via the WinSparkle framework.
* '''winsparkle'''. Optional, for application updates via the WinSparkle framework.
* '''zlib'''. Optional, for compressed saved games.


=== Let's get compiling! ===
=== Let's get compiling! ===
Line 109: Line 110:
The following list assumes that you are building ScummVM with default settings and all engines enabled, so chances that this list will suit your needs are pretty high.  
The following list assumes that you are building ScummVM with default settings and all engines enabled, so chances that this list will suit your needs are pretty high.  


* liba52-0.dll
* libbz2-1.dll
* libbz2-1.dll
* libfaad-2.dll
* libfaad-2.dll
1,310

edits

Navigation menu