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
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.
