Blame

432b0b Matt Hughes 2026-01-16 04:54:20
add build page
1
# Building Pointcaster
2
59dab0 Matt Hughes 2026-03-19 11:10:03
3
Source code for Pointcaster is available on [Github](https://github.com/matth-av/pointcaster). Start by cloning the repository:
8c8c1b Matt Hughes 2026-01-21 03:50:02
4
```sh
59dab0 Matt Hughes 2026-03-19 11:10:03
5
git clone https://github.com/matth-av/pointcaster.git
8c8c1b Matt Hughes 2026-01-21 03:50:02
6
cd pointcaster
7
```
63a237 Matt Hughes 2026-01-16 05:25:14
8
51fe60 Matt Hughes 2026-10-11 19:24:29
9
Builds use a containerised development environment that handles download and configuration of all dependencies. The [compose.yaml](https://github.com/matth-av/pointcaster/blob/qt/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](https://docs.docker.com/engine/install/) or [Podman](https://podman.io/docs/installation) (with `podman compose`) must be installed and configured on your system to proceed.
432b0b Matt Hughes 2026-01-16 04:54:20
add build page
10
51fe60 Matt Hughes 2026-10-11 19:24:29
11
## Linux
e6e300 Matt Hughes 2026-01-16 05:14:27
12
51fe60 Matt Hughes 2026-10-11 19:24:29
13
Start a development shell:
e6e300 Matt Hughes 2026-01-16 05:14:27
14
```sh
51fe60 Matt Hughes 2026-10-11 19:24:29
15
docker compose run --rm dev
4c17cd Matt Hughes 2026-08-20 01:11:05
16
```
51fe60 Matt Hughes 2026-10-11 19:24:29
17
Or with Podman:
4c17cd Matt Hughes 2026-08-20 01:11:05
18
```sh
51fe60 Matt Hughes 2026-10-11 19:24:29
19
podman compose run --rm dev
4c17cd Matt Hughes 2026-08-20 01:11:05
20
```
51fe60 Matt Hughes 2026-10-11 19:24:29
21
The container image is pulled from Pointcaster servers on first run. Or you can build it yourself from the [Dockerfile](https://github.com/matth-av/pointcaster/blob/qt/Dockerfile) (but it will take a while):
4c17cd Matt Hughes 2026-08-20 01:11:05
22
```sh
51fe60 Matt Hughes 2026-10-11 19:24:29
23
docker build -t cr.pointcaster.net/pointcaster-dev:latest-linux .
e6e300 Matt Hughes 2026-01-16 05:14:27
24
```
25
51fe60 Matt Hughes 2026-10-11 19:24:29
26
From inside the container, configure and build using `cmake`:
8c8c1b Matt Hughes 2026-01-21 03:50:02
27
```sh
77dd37 Matt Hughes 2026-01-21 03:38:38
28
cmake --preset linux-release
0e9a71 Matt Hughes 2026-07-19 10:12:59
29
cmake --build build/linux-release
41626d Matt Hughes 2026-07-19 13:53:34
30
cmake --build build/linux-release --target install
03f05d Matt Hughes 2026-07-19 13:52:36
31
cmake --build build/linux-release --target package
e6e300 Matt Hughes 2026-01-16 05:14:27
32
```
33
4e2df0 Matt Hughes 2026-08-20 01:32:52
34
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.
51fe60 Matt Hughes 2026-10-11 19:24:29
35
36
To produce a release package without opening a shell:
37
```sh
38
docker compose run --rm dev ./scripts/build-linux-release.sh
39
```
0e386a Matt Hughes 2026-01-21 03:40:30
40
> [!TIP]
51fe60 Matt Hughes 2026-10-11 19:24:29
41
> The same image is used as a base for a [Development Container](https://containers.dev/) in IDEs that support it. Visual Studio Code will automatically install extensions needed for C++, CMake and QML. See the [devcontainer.json](https://github.com/matth-av/pointcaster/blob/qt/.devcontainer/devcontainer.json).
77dd37 Matt Hughes 2026-01-21 03:38:38
42
432b0b Matt Hughes 2026-01-16 04:54:20
add build page
43
## Windows
bb906d Matt Hughes 2026-03-16 07:14:26
44
### Windows Builds Using Docker
51fe60 Matt Hughes 2026-10-11 19:24:29
45
Automated Windows builds use a Windows container with Visual Studio Build Tools and other binary dependencies installed by [`scripts/windows.Dockerfile`](https://github.com/matth-av/pointcaster/blob/qt/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](#windows-builds-in-an-ide).
964c07 Matt Hughes 2026-03-16 07:22:32
46
51fe60 Matt Hughes 2026-10-11 19:24:29
47
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.
964c07 Matt Hughes 2026-03-16 07:22:32
48
51fe60 Matt Hughes 2026-10-11 19:24:29
49
Start a development shell:
b780d8 Matt Hughes 2026-08-20 01:28:36
50
```sh
51fe60 Matt Hughes 2026-10-11 19:24:29
51
docker compose run --rm dev-win
b780d8 Matt Hughes 2026-08-20 01:28:36
52
```
51fe60 Matt Hughes 2026-10-11 19:24:29
53
Or build the image yourself (but it will take a while):
9efa22 Matt Hughes 2026-03-17 10:03:35
54
```sh
51fe60 Matt Hughes 2026-10-11 19:24:29
55
docker build -f scripts/windows.Dockerfile -t cr.pointcaster.net/pointcaster-dev:latest-windows .
b28796 Matt Hughes 2026-03-16 07:35:44
56
```
b780d8 Matt Hughes 2026-08-20 01:28:36
57
9efa22 Matt Hughes 2026-03-17 10:03:35
58
And from inside the container:
59
```sh
572bbd Matt Hughes 2026-03-16 07:36:58
60
cmake --preset windows-release
0e9a71 Matt Hughes 2026-07-19 10:12:59
61
cmake --build build/windows-release
41626d Matt Hughes 2026-07-19 13:53:34
62
cmake --build build/windows-release --target install
03f05d Matt Hughes 2026-07-19 13:52:36
63
cmake --build build/windows-release --target package
365e08 Matt Hughes 2026-03-16 07:36:43
64
```
4e2df0 Matt Hughes 2026-08-20 01:32:52
65
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`.
51fe60 Matt Hughes 2026-10-11 19:24:29
66
67
To produce a release package without opening a shell:
68
```sh
69
docker compose run --rm dev-win .\scripts\build-windows-release.ps1
70
```
399d19 Matt Hughes 2026-08-20 01:30:41
71
e07bf3 Matt Hughes 2026-03-16 07:19:41
72
### Windows Builds in an IDE
991d8c Matt Hughes 2026-03-17 01:08:34
73
#### Development Dependencies
bfbb40 Matt Hughes 2026-04-07 07:59:44
74
To build Pointcaster on Windows using an IDE like Visual Studio, you'll need to install the following libraries on your host:
75
- Qt ~~QtVersion~~, with the 'shadertools', 'quick3d' and 'tasktree' modules
76
- oneAPI Threading Building Blocks (oneTBB) ~~TbbVersion~~
77
- Python ~~PythonVersion~~
78
- Jinja ~~Jinja2Version~~
95383b Matt Hughes 2026-08-20 01:15:51
79
- NVIDIA CUDA Toolkit ~~CudaVersion~~
bfbb40 Matt Hughes 2026-04-07 07:59:44
80
ed2e06 Matt Hughes 2026-08-20 01:33:31
81
Additionally, your environment will need CMake, vcpkg, Ninja, and MSVC from Visual Studio 2022.
b780d8 Matt Hughes 2026-08-20 01:28:36
82
These are all included in Visual Studio's 'Desktop Development with C++' Workload.