Building Pointcaster

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
Tip

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.

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9