vcmi源码编译windows_cmake_mingw

1 准备

  1. HoMM3 gog.com
  2. CMake 官网
  3. vcmi 源码 下载
  4. QT5 with mingw 官网
  5. Boost 源码1.55 下载
  6. MSYS2 官网

2 安装

2.1 vcmi源码 目标路径 D:/vcmi/source/

2.2 QT5 with mingw, 设置环境变量

set PATH=D:\Qt\Qt5.4.1\5.4\mingw491_32\bin;D:\Qt\Qt5.4.1\Tools\mingw491_32\bin;%PATH%  

2.3 Boost 1.55

bootstrap.bat mingw  
b2 toolset=gcc --without-python --stage  
copy stage/lib to D:/vcmi/boost/lib  
copy boost dir to D:/vcmi/boost/boost  

2.4 MSYS2

D:/msys64/etc/pacman.conf 修改网络代理配置  
XferCommand = /usr/bin/curl -x http://yourproxy.yoursite.com:yourport -L -C - -f %u > %o  
-x 设置proxy,-L 支持自动重定向  
运行MSYS2 shell, 执行pacman -Syu,关闭(更新MSYS2软件库到最新)  
运行autorebase.bat(刷新MSYS2)  
运行MSYS2 shell, 安装所需库:  
pacman -S mingw-w64-i686-SDL2  
pacman -S mingw-w64-i686-SDL2_image  
pacman -S mingw-w64-i686-SDL2_mixer  
pacman -S mingw-w64-i686-SDL2_ttf  
pacman -S mingw-w64-i686-ffmpeg  
pacman -S mingw-w64-i686-zlib  

2.5 D:/vcmi/toolchain.txt新建

SET(CMAKE_SYSTEM_NAME Windows)  
SET(VCMIBUILD_DIR D:/vcmi)  
  
SET(CMAKE_C_COMPILER   D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/gcc.exe)  
SET(CMAKE_CXX_COMPILER D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/g++.exe)  
  
SET(ENV{BOOST_ROOT} ${VCMIBUILD_DIR}/boost)  
  
SET(CMAKE_FIND_ROOT_PATH  D:/msys64/mingw32)  
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_FIND_ROOT_PATH})  
list(APPEND CMAKE_PREFIX_PATH D:/Qt/Qt5.4.1/Tools/mingw491_32)  
  
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)  
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)  
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)  

3 编译

Open CMake-gui  
Select D:/vcmi/source as source directory  
Select D:/vcmi/binary as binary directory  
click "Configure"  
Select "MinGW makefiles" in combobox  
Select "Specify toolchain file for crosscompiling"  
Select toolchain file (D:/vcmi/toolchain.txt)  
Set variables:  
CMAKE_INSTALL_PREFIX = D:/vcmi/result  
ENABLE_PCH = OFF (because of cc1plus.exe crash)  
click Configure  
click Generate  
go to D:/vcmi/binary directory  
execute mingw32-make  
execute mingw32-make install  

4 运行

D:/vcmi/result 就是最终生成文件.
copy to Homm3.
enjoy it!

你可能感兴趣的:(windows)