Development
Source code for Pointcaster is available on Github. Start by cloning the repository:
git clone https://github.com/matth-av/pointcaster.git cd pointcaster
Builds use a containerised development environment that handles download and configuration of all dependencies. The compose.yaml in the root of the repository defines two services, dev for Linux and dev-win for Windows, which mount the repository inside the container and open a shell. Either Docker or Podman (with podman compose) must be installed and configured on your system to proceed.
Linux
Start a development shell:
docker compose run --rm dev
Or with Podman:
podman compose run --rm dev
The container image is pulled from Pointcaster servers on first run. Or you can build it yourself from the Dockerfile (but it will take a while):
docker build -t cr.pointcaster.net/pointcaster-dev:latest-linux .
From inside the container, configure and build using cmake:
cmake --preset linux-release cmake --build build/linux-release cmake --build build/linux-release --target install cmake --build build/linux-release --target package
The install target places a portable build at build/linux-release/install/bin/pointcaster, and the package target creates an AppImage at dist/pointcaster-<version>-linux-release.AppImage, both of which can be run from outside the container.
To produce a release package without opening a shell:
docker compose run --rm dev ./scripts/build-linux-release.sh
The same image is used as a base for a Development Container in IDEs that support it. Visual Studio Code will automatically install extensions needed for C++, CMake and QML. See the devcontainer.json.
Windows
Windows Builds Using Docker
Automated Windows builds use a Windows container with Visual Studio Build Tools and other binary dependencies installed by scripts/windows.Dockerfile. This is how release builds are produced, but if you are looking to develop Pointcaster or a Pointcaster plugin you'll most likely want to build and debug using an IDE - in which case you might prefer installing dependencies manually.
The dev-win service requires Docker running Windows containers. It uses process isolation, so the host must be able to run Windows Server 2022 based images (Windows 11, Windows Server 2022 or Windows Server 2025).
Start a development shell:
docker compose run --rm dev-win
Or build the image yourself (but it will take a while):
docker build -f scripts/windows.Dockerfile -t cr.pointcaster.net/pointcaster-dev:latest-windows .
And from inside the container:
cmake --preset windows-release cmake --build build/windows-release cmake --build build/windows-release --target install cmake --build build/windows-release --target package
The install target places a portable build at build/windows-release/install/pointcaster.exe, and the package target creates a zip archive at dist/pointcaster-<version>-windows-release.zip.
To produce a release package without opening a shell:
docker compose run --rm dev-win .\scripts\build-windows-release.ps1
Windows Builds in an IDE
Development Dependencies
To build Pointcaster on Windows using an IDE like Visual Studio, you'll need to install the following libraries on your host:
- Qt
QtVersion, with the 'shadertools', 'quick3d' and 'tasktree' modules - oneAPI Threading Building Blocks (oneTBB)
TbbVersion - Python
PythonVersion - Jinja
Jinja2Version - NVIDIA CUDA Toolkit
CudaVersion
Additionally, your environment will need CMake, vcpkg, Ninja, and MSVC from Visual Studio 2022. These are all included in Visual Studio's 'Desktop Development with C++' Workload.
