This guide describes how to build MMapper from source on Linux, macOS, and Windows using CMake and Ninja. For tested build configurations, see the GitHub Actions workflows.
Ensure the following tools are installed:
- A C++17-compatible compiler (e.g., GCC, Clang, MSVC)
- CMake 3.20+
- Ninja
- Qt 6.2+ (6.5 recommended) with
QtWebSockets
git clone https://github.com/MUME/MMapper.git
cd MMapperInstall the required packages with:
sudo apt-get update
sudo apt-get install -y build-essential zlib1g-dev libssl-dev libglm-dev cmake ninja-build qt6-base-dev qt6-base-dev-tools libqt6opengl6-dev libqt6websockets6-dev qtkeychain-qt6-devAfter installing dependencies, build as usual:
mkdir build
cd build
cmake -G Ninja -DWITH_WEBSOCKET=ON -DWITH_QTKEYCHAIN=ON -S ..
cmake --build . --parallelInstall dependencies with Homebrew and aqtinstall:
brew install cmake ninja aqtinstall
aqt install-qt mac desktop 6.5.3 clang_64 -m qtwebsocketsMake sure Xcode Command Line Tools are installed:
xcode-select --installAdd Qt to your PATH:
echo 'export PATH="~/6.5.3/macos/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcThen build:
mkdir build
cd build
cmake -G Ninja -DWITH_WEBSOCKET=ON -DWITH_QTKEYCHAIN=ON -S ..
cmake --build . --parallelInstall:
- Python +
pip install aqtinstall - CMake, Ninja, NSIS, 7-Zip
- Visual Studio with Desktop development with C++
aqt install-qt windows desktop 6.5.3 win64_msvc2019_64 -m qtwebsocketsAdd Qt\6.5.3\msvc2019_64\bin to PATH.
aqt install-qt windows desktop 6.5.3 win64_mingw -m qtwebsockets
aqt install-tool windows desktop tools_mingw1310Add both Qt and MingW bin directories to PATH.
From the project root:
mkdir build
cd build
cmake -G Ninja -DWITH_WEBSOCKET=ON -DWITH_QTKEYCHAIN=ON -S ..
cmake --build . --parallelctestcpackRun clang-format via Docker:
docker run --rm --platform linux/amd64 \
-v "$(pwd):$(pwd)" -w "$(pwd)" \
ghcr.io/jidicula/clang-format:14 \
--dry-run --Werror --style=file \
$(find src tests -iname '*.h' -o -iname '*.c' -o -iname '*.cpp' -o -iname '*.hpp')Our GitHub Actions workflow defines the tested build environment across platforms.
If you're troubleshooting local issues, consider comparing your setup with the Docker images or tool versions used in CI.