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

From VCMI Project Wiki
Jump to: navigation, search
(Compile VCMI from command line)
(Install dependencies)
Line 11: Line 11:
  
 
Package guaranteed to work since they tested with every commit by [https://ci.appveyor.com/project/vcmi/vcmi AppVeyor]
 
Package guaranteed to work since they tested with every commit by [https://ci.appveyor.com/project/vcmi/vcmi AppVeyor]
 +
 +
=== Choose directory for Vcpkg ===
 +
 +
Choose a directory for Vcpkg, 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)
  
 
=== Download and unpack archive ===
 
=== Download and unpack archive ===
Line 27: Line 39:
 
Once extracted "vcpkg" directory will appear with "installed" and "scripts" inside it.
 
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]'''
+
Move extracted "vcpkg" directory to where you decide to keep your '''[VCPKG_DIR]'''.
  
 
== Build Vcpkg on your own ==
 
== 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.
 
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 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 ===
 
=== Clone vcpkg ===

Revision as of 08:10, 5 September 2017

Prerequisites

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 AppVeyor

Choose directory for Vcpkg

Choose a directory for Vcpkg, 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)

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 extracted "vcpkg" directory to where you decide to keep your [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

Clone vcpkg

From command line cd into [VCMI_DIR] and use:

git clone https://github.com/microsoft/vcpkg.git

Build vcpkg

  • Run
[VCPKG_DIR]/bootstrap-vcpkg.bat

Build dependencies

  • For 32-bit build run:
[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
  • For 64-bit build run
[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

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

From command line cd into [VCMI_DIR] and use:

git clone -b develop --depth 1 --recursive https://github.com/vcmi/vcmi.git source

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

cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015"

Visual Studio 2015 - 64-bit build

cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015 Win64"

Visual Studio 2017 - 32-bit build

cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017"

Visual Studio 2017 - 64-bit build

cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017 Win64"

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

cmake --build . --config Release

For debug build

cmake --build . --config Debug

Debug will be used by default even "--config" if not specified.

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:

cpack

If you want debug build:

cpack -C Debug