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.

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