Difference between revisions of "How to build VCMI (Windows/Vcpkg)"

From VCMI Project Wiki
Jump to: navigation, search
(Clone VCMI)
(Replaced content with "{{Template:MovedToWebpage|https://vcmi.eu/developers/Building_Windows/}}")
 
(43 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= Prerequisites =
+
{{Template:MovedToWebpage|https://vcmi.eu/developers/Building_Windows/}}
* Microsoft Visual Studio [https://www.visualstudio.com/vs/older-downloads/ 2015] or [http://www.visualstudio.com/downloads/download-visual-studio-vs 2017]
 
* Git or git GUI, for example, SourceTree [http://www.sourcetreeapp.com/download download]
 
* CMake [https://cmake.org/download/ download]
 
* To unpack pre-build Vcpkg: [http://www.7-zip.org/download.html 7-zip]
 
* To create installer: [http://nsis.sourceforge.net/Main_Page NSIS]
 
 
 
= Install dependencies =
 
== Download pre-built Vcpkg ==
 
You might save a time by using Vcpkg packages pre-built by VCMI team.
 
 
 
Package guaranteed to work since they tested with every commit by [https://ci.appveyor.com/project/vcmi/vcmi AppVeyor]
 
 
 
=== Download and unpack archive ===
 
 
 
Archives are available from GitHub: https://github.com/vcmi/vcmi-deps-windows/releases
 
 
 
Only download latest version available.
 
 
 
* vcpkg-export-'''x86'''-windows-v140.7z to build for 32-bit
 
* vcpkg-export-'''x64'''-windows-v140.7z to build for 64-bit
 
 
 
Extract archive by right clicking on it and choosing "7-zip -> Extract Here".
 
 
 
=== Move dependencies to target directory  ===
 
 
 
Once extracted "vcpkg" directory will appear with "installed" and "scripts" inside it.
 
 
 
Move it where you wish, e.g right to the C:\ so full path to Vcpkg will be '''C:\vcpkg'''. We will call this directory as '''[VCPKG_DIR]'''
 
 
 
== Build Vcpkg on your own ==
 
Be aware that building Vcpkg might take a lot of time depend on your CPU model and 10-20GB of disk space.
 
=== Create initial directory ===
 
Create a directory for vcpkg development, eg. '''C:\vcpkg'''
 
We will call this directory as '''[VCPKG_DIR]'''
 
 
 
It is recommended to avoid non-ascii characters in the path to your vcpkg folder. The folder should not be write-protected by system.
 
Good location:
 
* '''C:\vcpkg'''
 
Bad locations:
 
* '''C:\Users\Michał\vcpkg''' (non-ascii character)
 
* '''C:\Program Files (x86)\vcpkg''' (write protection)
 
 
 
=== Clone vcpkg ===
 
 
 
* open SourceTree
 
* File -> Clone
 
* select '''https://github.com/microsoft/vcpkg/''' as source
 
* select '''[VCPKG_DIR]''' as destination
 
* click '''Clone'''
 
 
 
From command line cd into [VCMI_DIR] and use:
 
<pre>
 
git clone https://github.com/microsoft/vcpkg.git
 
</pre>
 
 
 
=== Build vcpkg ===
 
* Run
 
<pre>
 
[VCPKG_DIR]/bootstrap-vcpkg.bat
 
</pre>
 
 
 
=== Build dependencies ===
 
* For 32-bit build run:
 
<pre>
 
[VCPKG_DIR]/vcpkg.exe install minizip:x86-windows sdl2:x86-windows sdl2-image:x86-windows sdl2-ttf:x86-windows sdl2-mixer:x86-windows boost:x86-windows qt5:x86-windows ffmpeg:x86-windows fuzzylite:x86-windows
 
</pre>
 
* For 64-bit build run
 
<pre>
 
[VCPKG_DIR]/vcpkg.exe install minizip:x64-windows sdl2:x64-windows sdl2-image:x64-windows sdl2-ttf:x64-windows sdl2-mixer:x64-windows boost:x64-windows qt5:x64-windows ffmpeg:x64-windows fuzzylite:x64-windows
 
</pre>
 
 
 
= Build VCMI =
 
 
 
== Create initial directory ==
 
Create a directory for VCMI development, eg. '''C:\VCMI'''
 
We will call this directory as '''[VCMI_DIR]'''
 
 
 
It is recommended to avoid non-ascii characters in the path to your VCMI development folder. The folder should not be write-protected by system.
 
Good location:
 
* '''C:\VCMI'''
 
Bad locations:
 
* '''C:\Users\Michał\VCMI''' (non-ascii character)
 
* '''C:\Program Files (x86)\VCMI''' (write protection)
 
 
 
== Clone VCMI ==
 
* open SourceTree
 
* File -> Clone
 
* select '''https://github.com/vcmi/vcmi/''' as source
 
* select '''[VCMI_DIR]/source''' as destination
 
* click '''Clone'''
 
 
 
From command line cd into '''[VCMI_DIR]''' and use:
 
<pre>
 
git clone -b develop --depth 1 --recursive https://github.com/vcmi/vcmi.git source
 
</pre>
 
 
 
== Generate solution for VCMI ==
 
* create '''[VCMI_DIR]/build'''
 
* open '''[VCMI_DIR]/build''' in terminal
 
* execute command to generate project for:
 
 
 
'''Visual Studio 2015 - 32-bit build'''
 
<pre>
 
cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015"
 
</pre>
 
 
 
'''Visual Studio 2015 - 64-bit build'''
 
<pre>
 
cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015 Win64"
 
</pre>
 
 
 
'''Visual Studio 2017 - 32-bit build'''
 
<pre>
 
cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017"
 
</pre>
 
 
 
'''Visual Studio 2017 - 64-bit build'''
 
<pre>
 
cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017 Win64"
 
</pre>
 
 
== Compile VCMI with Visual Studio ==
 
* open '''[VCMI_DIR]/build/VCMI.sln''' in Visual Studio
 
* select "Release" build type in combobox
 
* right click on '''BUILD_ALL''' project - build project
 
* grab VCMI in '''[VCMI_DIR]/build/bin''' folder!
 
 
 
== Compile VCMI from command line ==
 
From '''[VCMI_DIR]/build''' execute followding commands.
 
 
 
'''For release build'''
 
<pre>
 
cmake --build . --config Release
 
</pre>
 
Will be used by default even "--config" if not specified.
 
 
 
'''For debug build'''
 
<pre>
 
cmake --build . --config Debug
 
</pre>
 
 
 
= Create VCMI installer =
 
Make sure NSIS is installed to default directory or have registry entry so CMake can find it.
 
 
 
After you build VCMI execute following command from [VCMI_DIR]/build.
 
=== Execute following if you build for Release: ===
 
<pre>
 
cpack
 
</pre>
 
=== If you want debug build: ===
 
<pre>
 
cpack -C Debug
 
</pre>
 

Latest revision as of 16:07, 16 July 2024

Logo256.png    Page moved to VCMI-Homepage