Browse Source

add win_x64 MinGW builds and Readme Instructions

pull/1022/head^2
Trihedraf 5 years ago committed by Anders Jenbo
parent
commit
a0e8479274
  1. 13
      .circleci/config.yml
  2. 19
      CMake/mingwcc64.cmake
  3. 15
      Packaging/windows/mingw-prep64.sh
  4. 23
      README.md

13
.circleci/config.yml

@ -67,6 +67,18 @@ jobs:
- run: cmake -S. -Bbuild -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake
- run: cmake --build build -j $(nproc)
- store_artifacts: {path: ./build/devilutionx.exe, destination: devilutionx_x86.exe}
windows_x64:
docker:
- image: debian:stable
working_directory: ~/repo
steps:
- checkout
- run: apt-get update -y
- run: apt-get install -y cmake gcc-mingw-w64 g++-mingw-w64 wget git sudo
- run: Packaging/windows/mingw-prep64.sh
- run: cmake -S. -Bbuild -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc64.cmake
- run: cmake --build build -j $(nproc)
- store_artifacts: {path: ./build/devilutionx.exe, destination: devilutionx_x64.exe}
switch:
docker:
- image: devkitpro/devkita64:20200528
@ -101,6 +113,7 @@ workflows:
- linux_x86_64_test
- linux_x86
- windows_x86
- windows_x64
- linux_x86_64_sdl1
- switch
- amigaos-m68k

19
CMake/mingwcc64.cmake

@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 3.10)
SET(CROSS_PREFIX "/usr" CACHE STRING "crosstool-NG prefix")
SET(CMAKE_SYSTEM_NAME Windows)
# workaround
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/x86_64-w64-mingw32/include")
SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc")
SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++")
set(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres")
SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/x86_64-w64-mingw32" "${CROSS_PREFIX}/x86_64-w64-mingw32/x86_64-w64-mingw32")
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

15
Packaging/windows/mingw-prep64.sh

@ -0,0 +1,15 @@
#!/usr/bin/env bash
# exit when any command fails
set -euo pipefail
wget https://www.libsdl.org/release/SDL2-devel-2.0.9-mingw.tar.gz
tar -xzf SDL2-devel-2.0.9-mingw.tar.gz
wget https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-mingw.tar.gz
tar -xzf SDL2_ttf-devel-2.0.15-mingw.tar.gz
wget https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-mingw.tar.gz
tar -xzf SDL2_mixer-devel-2.0.4-mingw.tar.gz
wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18-mingw.tar.gz
tar -xzf libsodium-1.0.18-mingw.tar.gz --no-same-owner
sudo cp -r libsodium-win64/* /usr/x86_64-w64-mingw32
sudo cp -r SDL2*/x86_64-w64-mingw32 /usr

23
README.md

@ -95,6 +95,8 @@ cmake --build . -j $(sysctl -n hw.ncpuonline)
### Installing dependencies on WSL, Debian and Ubuntu
### 32-bit
Download and place the 32bit MinGW Development Libraries of [SDL2](https://www.libsdl.org/download-2.0.php), [SDL2_mixer](https://www.libsdl.org/projects/SDL_mixer/), [SDL2_ttf](https://www.libsdl.org/projects/SDL_ttf/) and [Libsodium](https://github.com/jedisct1/libsodium/releases) in `/usr/i686-w64-mingw32`. This can be done automatically by running
`Packaging/windows/mingw-prep.sh`.
NOTE: SDL2 2.0.12 appears to not compile correctly.
@ -102,12 +104,33 @@ NOTE: SDL2 2.0.12 appears to not compile correctly.
```
sudo apt-get install cmake gcc-mingw-w64-i686 g++-mingw-w64-i686
```
### 64-bit
Download and place the 64bit MinGW Development Libraries of [SDL2](https://www.libsdl.org/download-2.0.php), [SDL2_mixer](https://www.libsdl.org/projects/SDL_mixer/), [SDL2_ttf](https://www.libsdl.org/projects/SDL_ttf/) and [Libsodium](https://github.com/jedisct1/libsodium/releases) in `/usr/x86_64-w64-mingw32`. This can be done automatically by running
`Packaging/windows/mingw-prep64.sh`.
NOTE: SDL2 2.0.12 appears to not compile correctly.
```
sudo apt-get install cmake gcc-mingw-w64 g++-mingw-w64
```
### Compiling
### 32-bit
```
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc.cmake ..
make -j$(nproc)
```
### 64-bit
```
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../CMake/mingwcc64.cmake ..
make -j$(nproc)
```
</details>
<details><summary>Windows via Visual Studio</summary>

Loading…
Cancel
Save