|
|
(23 intermediate revisions by 6 users not shown) |
Line 1: |
Line 1: |
− | = Prerequisites =
| + | {{Template:MovedToWebpage|https://vcmi.eu/developers/Building_Windows/}} |
− | * Windows Vista or newer.
| |
− | * 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]
| |
− | | |
− | = Choose directory =
| |
− | | |
− | Create a directory for VCMI development, eg. '''C:\VCMI'''
| |
− | We will call this directory as '''[VCMI_DIR]'''
| |
− | | |
− | '''Warning!''' Replace '''[VCMI_DIR]''' with path you chosen in following commands of this instruction.
| |
− | | |
− | == How to choose good directory ==
| |
− | | |
− | It is recommended to avoid non-ascii characters in the path to your working folders. 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)
| |
− | | |
− | = Install dependencies =
| |
− | | |
− | You have two options: to use pre-built libraries or build your own. We strongly recommend start with using pre-built ones.
| |
− | | |
− | == Option A. Use pre-built Vcpkg ==
| |
− | So you decide to start 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 extracted "vcpkg" directory into your '''[VCMI_DIR]'''.
| |
− | | |
− | == Option B. 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 ===
| |
− | | |
− | # open SourceTree
| |
− | # File -> Clone
| |
− | # select '''https://github.com/microsoft/vcpkg/''' as source
| |
− | # select '''[VCMI_DIR]/vcpkg''' as destination
| |
− | # click '''Clone'''
| |
− | | |
− | From command line use:
| |
− | <pre>
| |
− | git clone https://github.com/microsoft/vcpkg.git [VCMI_DIR]/vcpkg
| |
− | </pre>
| |
− | | |
− | === Build vcpkg ===
| |
− | * Run
| |
− | <pre>
| |
− | [VCMI_DIR]/vcpkg/bootstrap-vcpkg.bat
| |
− | </pre>
| |
− | | |
− | === Build dependencies ===
| |
− | * For 32-bit build run:
| |
− | <pre>
| |
− | [VCMI_DIR]/vcpkg/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>
| |
− | [VCMI_DIR]/vcpkg/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 =
| |
− | | |
− | == Clone VCMI ==
| |
− | # open SourceTree
| |
− | # File -> Clone
| |
− | # select '''https://github.com/vcmi/vcmi/''' as source
| |
− | # select '''[VCMI_DIR]/source''' as destination
| |
− | # expand Advanced Options and change Checkout Branch to "develop"
| |
− | # tick Recursive submodules
| |
− | # click '''Clone'''
| |
− | | |
− | or From command line use:
| |
− | <pre>
| |
− | git clone --recursive https://github.com/vcmi/vcmi.git [VCMI_DIR]/source
| |
− | </pre>
| |
− | | |
− | == Generate solution for VCMI ==
| |
− | # create '''[VCMI_DIR]/build''' folder
| |
− | # open '''[VCMI_DIR]/build''' in command line:
| |
− | ## Run Command Prompt or Power Shell.
| |
− | ## Execute: cd [VCMI_DIR]/build
| |
− | # execute one of following commands to generate project
| |
− | | |
− | '''Visual Studio 2015 - 32-bit build'''
| |
− | <pre>
| |
− | cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015"
| |
− | </pre>
| |
− | | |
− | '''Visual Studio 2015 - 64-bit build'''
| |
− | <pre>
| |
− | cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 14 2015 Win64"
| |
− | </pre>
| |
− | | |
− | '''Visual Studio 2017 - 32-bit build'''
| |
− | <pre>
| |
− | cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 15 2017"
| |
− | </pre>
| |
− | | |
− | '''Visual Studio 2017 - 64-bit build'''
| |
− | <pre>
| |
− | cmake [VCMI_DIR]/source -DCMAKE_TOOLCHAIN_FILE=[VCMI_DIR]/vcpkg/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 ==
| |
− | | |
− | '''For release build'''
| |
− | <pre>
| |
− | cmake --build [VCMI_DIR]/build --config Release
| |
− | </pre>
| |
− | | |
− | '''For debug build'''
| |
− | <pre>
| |
− | cmake --build [VCMI_DIR]/build --config Debug
| |
− | </pre>
| |
− | 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 commands from '''[VCMI_DIR]/build'''.
| |
− | === Execute following if you built for Release: ===
| |
− | <pre>
| |
− | cpack
| |
− | </pre>
| |
− | === If you built for Debug: ===
| |
− | <pre>
| |
− | cpack -C Debug
| |
− | </pre>
| |