Difference between revisions of "How to build VCMI (Windows/Vcpkg)"
(→Prerequisites) |
(→Create VCMI installer) |
||
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Prerequisites = | = Prerequisites = | ||
− | * | + | * 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] | * 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 = | = Install dependencies = | ||
+ | == Download pre-built Vcpkg == | ||
+ | You might save a time by using Vcpkg packages pre-built by VCMI team. | ||
− | == Create initial directory == | + | 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''' | Create a directory for vcpkg development, eg. '''C:\vcpkg''' | ||
We will call this directory as '''[VCPKG_DIR]''' | We will call this directory as '''[VCPKG_DIR]''' | ||
Line 17: | Line 42: | ||
* '''C:\Program Files (x86)\vcpkg''' (write protection) | * '''C:\Program Files (x86)\vcpkg''' (write protection) | ||
− | == Clone vcpkg == | + | === Clone vcpkg === |
* open SourceTree | * open SourceTree | ||
Line 25: | Line 50: | ||
* click '''Clone''' | * click '''Clone''' | ||
− | == Build vcpkg == | + | === Build vcpkg === |
− | * Run | + | * Run |
+ | <pre> | ||
+ | [VCPKG_DIR]/bootstrap-vcpkg.bat | ||
+ | </pre> | ||
− | == Build dependencies == | + | === Build dependencies === |
− | * For 32-bit build run | + | * For 32-bit build run: |
− | * For 64-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 = | = Build VCMI = | ||
Line 52: | Line 86: | ||
* click '''Clone''' | * click '''Clone''' | ||
− | == | + | == Generate solution for VCMI == |
* create '''[VCMI_DIR]/build''' | * create '''[VCMI_DIR]/build''' | ||
* open '''[VCMI_DIR]/build''' in terminal | * open '''[VCMI_DIR]/build''' in terminal | ||
− | * execute '''cmake ../source -DCMAKE_TOOLCHAIN_FILE=[VCPKG_DIR]/scripts/buildsystems/vcpkg.cmake - | + | * execute command to generate project for: |
− | * open '''VCMI.sln''' in Visual Studio | + | |
+ | '''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 | * select "Release" build type in combobox | ||
* right click on '''BUILD_ALL''' project - build project | * 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> |
Revision as of 22:35, 20 August 2017
Prerequisites
- Microsoft Visual Studio 2015 or 2017
- Git or git GUI, for example, SourceTree download
- CMake download
- To unpack pre-build Vcpkg: 7-zip
- To create installer: 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 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
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
- open SourceTree
- File -> Clone
- select https://github.com/vcmi/vcmi/ as source
- select [VCMI_DIR]/source as destination
- click Clone
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
Will be used by default even "--config" if not specified.
For debug build
cmake --build . --config Debug
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