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
432b0b Matt Hughes 2026-01-16 04:54:20
add build page
9
## Linux
10
4c17cd Matt Hughes 2026-08-20 01:11:05
11
Builds on Linux use a containerised development environment created using the [Dockerfile](https://github.com/matth-av/pointcaster/blob/qt/Dockerfile) in the root of the repository. This handles download and configuration of all dependencies. Either [Docker](https://docs.docker.com/engine/install/) or [Podman](https://podman.io/docs/installation) must be installed and configured on your system to proceed.
e6e300 Matt Hughes 2026-01-16 05:14:27
12
4c17cd Matt Hughes 2026-08-20 01:11:05
13
The container image can be pulled from Pointcaster servers:
e6e300 Matt Hughes 2026-01-16 05:14:27
14
```sh
4c17cd Matt Hughes 2026-08-20 01:11:05
15
docker pull cr.pointcaster.net/pointcaster-dev
16
```
17
18
Or you can build it yourself (but it will take a while):
19
```sh
20
docker build -t pointcaster-dev .
21
```
22
23
It can be run directly to create release builds:
24
```sh
d83be3 Matt Hughes 2026-08-20 01:29:30
25
docker run --rm -v ./:/pointcaster:Z cr.pointcaster.net/pointcaster-dev \
adffd7 Matt Hughes 2026-08-20 01:13:48
26
./scripts/build-linux-release.sh
e6e300 Matt Hughes 2026-01-16 05:14:27
27
```
dbe2ce Matt Hughes 2026-07-19 10:56:46
28
The `-v` argument ensures the repository is mounted inside the container.
e6e300 Matt Hughes 2026-01-16 05:14:27
29
4c17cd Matt Hughes 2026-08-20 01:11:05
30
For a development shell, invoke `bash` or `fish`, then you can configure and build using `cmake`:
8c8c1b Matt Hughes 2026-01-21 03:50:02
31
```sh
cc3e78 Matt Hughes 2026-08-20 01:13:59
32
docker run --rm -it -v ./:/pointcaster:Z cr.pointcaster.net/pointcaster-dev bash
8c8c1b Matt Hughes 2026-01-21 03:50:02
33
```
34
Then from inside:
35
```sh
77dd37 Matt Hughes 2026-01-21 03:38:38
36
cmake --preset linux-release
0e9a71 Matt Hughes 2026-07-19 10:12:59
37
cmake --build build/linux-release
41626d Matt Hughes 2026-07-19 13:53:34
38
cmake --build build/linux-release --target install
03f05d Matt Hughes 2026-07-19 13:52:36
39
cmake --build build/linux-release --target package
e6e300 Matt Hughes 2026-01-16 05:14:27
40
```
41
4e2df0 Matt Hughes 2026-08-20 01:32:52
42
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.
0e386a Matt Hughes 2026-01-21 03:40:30
43
> [!TIP]
59dab0 Matt Hughes 2026-03-19 11:10:03
44
> The docker 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
45
432b0b Matt Hughes 2026-01-16 04:54:20
add build page
46
## Windows
bb906d Matt Hughes 2026-03-16 07:14:26
47
### Windows Builds Using Docker
59dab0 Matt Hughes 2026-03-19 11:10:03
48
Automated Windows builds use [Docker](https://docs.docker.com/engine/install/) to configure the build environment. [`scripts/windows.Dockerfile`](https://github.com/matth-av/pointcaster/blob/qt/scripts/windows.Dockerfile) installs Visual Studio Build Tools and other binary dependencies in a Windows container. 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
49
b28796 Matt Hughes 2026-03-16 07:35:44
50
The following commands assume you have a working docker installation capable of running Windows containers on the command line.
964c07 Matt Hughes 2026-03-16 07:22:32
51
b780d8 Matt Hughes 2026-08-20 01:28:36
52
The container image can be pulled from Pointcaster servers:
53
```sh
54
docker pull cr.pointcaster.net/pointcaster-dev
55
```
56
57
Or you can build it yourself (but it will take a while):
9efa22 Matt Hughes 2026-03-17 10:03:35
58
```sh
b780d8 Matt Hughes 2026-08-20 01:28:36
59
docker build -t pointcaster-dev .
b28796 Matt Hughes 2026-03-16 07:35:44
60
```
b780d8 Matt Hughes 2026-08-20 01:28:36
61
08f6f1 Matt Hughes 2026-07-17 02:45:23
62
To produce a Pointcaster release package:
b28796 Matt Hughes 2026-03-16 07:35:44
63
```
b780d8 Matt Hughes 2026-08-20 01:28:36
64
docker run -v ./:C:\pointcaster cr.pointcaster.net/pointcaster-dev \
65
.\scripts-build-windows-release.ps1
3ba8af Matt Hughes 2026-03-15 00:54:49
66
```
dbe2ce Matt Hughes 2026-07-19 10:56:46
67
The `-v` argument ensures the repository is mounted inside the container.
68
3ba8af Matt Hughes 2026-03-15 00:54:49
69
For a development shell:
70
```
b780d8 Matt Hughes 2026-08-20 01:28:36
71
docker run -it -v ./:C:\pointcaster cr.pointcaster.net/pointcaster-dev powershell
891c5a Matt Hughes 2026-03-14 14:08:46
72
```
9efa22 Matt Hughes 2026-03-17 10:03:35
73
And from inside the container:
74
```sh
572bbd Matt Hughes 2026-03-16 07:36:58
75
cmake --preset windows-release
0e9a71 Matt Hughes 2026-07-19 10:12:59
76
cmake --build build/windows-release
41626d Matt Hughes 2026-07-19 13:53:34
77
cmake --build build/windows-release --target install
03f05d Matt Hughes 2026-07-19 13:52:36
78
cmake --build build/windows-release --target package
365e08 Matt Hughes 2026-03-16 07:36:43
79
```
4e2df0 Matt Hughes 2026-08-20 01:32:52
80
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`.
399d19 Matt Hughes 2026-08-20 01:30:41
81
> [!TIP]
82
> You might benefit from passing some docker args to fully utilise available resources, e.g.:
83
> ```sh
84
> docker run --memory=20G --cpus=16 ...
85
> ```
86
e07bf3 Matt Hughes 2026-03-16 07:19:41
87
### Windows Builds in an IDE
991d8c Matt Hughes 2026-03-17 01:08:34
88
#### Development Dependencies
bfbb40 Matt Hughes 2026-04-07 07:59:44
89
To build Pointcaster on Windows using an IDE like Visual Studio, you'll need to install the following libraries on your host:
90
- Qt ~~QtVersion~~, with the 'shadertools', 'quick3d' and 'tasktree' modules
91
- oneAPI Threading Building Blocks (oneTBB) ~~TbbVersion~~
92
- Python ~~PythonVersion~~
93
- Jinja ~~Jinja2Version~~
95383b Matt Hughes 2026-08-20 01:15:51
94
- NVIDIA CUDA Toolkit ~~CudaVersion~~
bfbb40 Matt Hughes 2026-04-07 07:59:44
95
ed2e06 Matt Hughes 2026-08-20 01:33:31
96
Additionally, your environment will need CMake, vcpkg, Ninja, and MSVC from Visual Studio 2022.
b780d8 Matt Hughes 2026-08-20 01:28:36
97
These are all included in Visual Studio's 'Desktop Development with C++' Workload.