Skip to content

Minimal Mingw64 build env using CMake. Used for building projects such as mpv, urban terror, quake3e, iortcw, openarena, q2pro, ffmpeg and xonotic.

Notifications You must be signed in to change notification settings

rorgoroth/mingw-cmake-env

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This is a stripped down version of shinchiro/mpv-winbuild-cmake.

This is only tested on Alpine Linux and only 64bit Windows 10 and above is supported.

Precompiled Packages

See the Releases page.

These all come with update scripts, however if one breaks it is on you to keep backups. In the event of breakage please check out the Actions and download the artifacts from a previous working build.

FFmpeg: CLI tool for processing of video and audio files, git builds.

mpv: Media player, git builds.

OpenArena: Completely FOSS version of Quake 3, client only (based on Quake3e using Vulkan), git builds.

Quake2pro: Enhanced Quake 2 client and server focused on multiplayer, git builds.

Quake3e: Quake3 optimized client using Vulkan, git builds.

Urban Terror: Quake3 mod and standalone game, client only (based on Quake3e, using Vulkan), git builds.

xonotic: Client only, git builds.

Build Instructions

Basic build deps:

apk add -i autoconf automake bash bzip2 cmake diffutils g++ gcc git libtool make meson mimalloc2-insecure musl-dev nasm p7zip patch pkgconf po4a py3-mako samurai texinfo yasm zstd

Setup/Build:

git clone https://github.com/rorgoroth/mingw-cmake-env.git
cd mingw-cmake-env
ccmake -Bbuild -G Ninja
ninja -C build llvm
ninja -C build $package

Where $package is, for example, mpv - by default all packages are built which is probably not what you want so specify the package you want, it also accepts multiple targets. The toolchain is excluded by default, so if there are updates to toolchain you need to manually run ninja llvm.

The toolchain now uses precompiled clang/llvm from rorgoroth/llvm-mingw. The precompiled toolchain only works on Alpine, it will not work on Ubuntu or anything else. You'll need to build it yourself outside of Alpine. You should set up an Alpine container for this project.