Blame

432b0b Matt Hughes 2026-01-16 04:54:20
add build page
1
# Building Pointcaster
2
8c8c1b Matt Hughes 2026-01-21 03:50:02
3
Source code for Pointcaster is available on [Github](https://github.com/eidetic-av/pointcaster). Start by cloning the repository:
4
```sh
5
git clone https://github.com/eidetic-av/pointcaster.git
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
bb906d Matt Hughes 2026-03-16 07:14:26
11
Builds on Linux use a containerised environment created using the [Dockerfile](https://github.com/eidetic-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
8c8c1b Matt Hughes 2026-01-21 03:50:02
13
The Pointcaster AppImage can be built from the repository root like so:
e6e300 Matt Hughes 2026-01-16 05:14:27
14
```sh
8c8c1b Matt Hughes 2026-01-21 03:50:02
15
docker build -t pointcaster-linux .
16
docker run --rm -it -v ./:/pointcaster:Z -w /pointcaster pointcaster-linux ./scripts/build-linux-release.sh
e6e300 Matt Hughes 2026-01-16 05:14:27
17
```
18
The `docker run` command arguments ensure that the repository is mounted inside the container and set as the working directory.
19
20
For a development shell, invoke `bash` or `fish`, where you can configure and build using `cmake`:
8c8c1b Matt Hughes 2026-01-21 03:50:02
21
```sh
3ba8af Matt Hughes 2026-03-15 00:54:49
22
docker run --rm -it -v ./:/pointcaster:Z -w/pointcaster pointcaster-linux bash
8c8c1b Matt Hughes 2026-01-21 03:50:02
23
```
24
Then from inside:
25
```sh
77dd37 Matt Hughes 2026-01-21 03:38:38
26
cmake --preset linux-release
27
cmake --build build/linux-release
28
cmake --build build/linux-release --target install
29
cmake --build build/linux-release --target package
e6e300 Matt Hughes 2026-01-16 05:14:27
30
```
31
4ab926 Matt Hughes 2026-01-16 05:30:31
32
The install target places a portable build at `build/linux-release/install/bin/pointcaster`, and the package target creates an AppImage at `build/linux-release/Pointcaster-Linux-<version>.AppImage`, both of which can be run from outside the container.
0e386a Matt Hughes 2026-01-21 03:40:30
33
> [!TIP]
8c8c1b Matt Hughes 2026-01-21 03:50:02
34
> 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/eidetic-av/pointcaster/blob/qt/.devcontainer/devcontainer.json).
77dd37 Matt Hughes 2026-01-21 03:38:38
35
432b0b Matt Hughes 2026-01-16 04:54:20
add build page
36
## Windows
bb906d Matt Hughes 2026-03-16 07:14:26
37
### Windows Builds Using Docker
b28796 Matt Hughes 2026-03-16 07:35:44
38
Automated Windows builds use [Docker](https://docs.docker.com/engine/install/) to configure the build environment. [`scripts/windows.Dockerfile`](https://github.com/eidetic-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'll need to [configure dependencies manually](#windows-builds-in-an-ide). You can use [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/) to build and run Pointcaster on Windows and edit source code in whatever editor you want, but you're on your own figuring out how to Debug in this workflow.
964c07 Matt Hughes 2026-03-16 07:22:32
39
b28796 Matt Hughes 2026-03-16 07:35:44
40
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
41
b28796 Matt Hughes 2026-03-16 07:35:44
42
To build the Windows docker image:
891c5a Matt Hughes 2026-03-14 14:08:46
43
```pwsh
bb906d Matt Hughes 2026-03-16 07:14:26
44
docker build -f scripts/windows.Dockerfile -t pointcaster-win .
b28796 Matt Hughes 2026-03-16 07:35:44
45
```
46
To produce a Pointcaster installer package:
47
```
bb906d Matt Hughes 2026-03-16 07:14:26
48
docker run -v ./:C:\pointcaster -w C:\pointcaster pointcaster-win .\scripts-build-windows-release.ps1
3ba8af Matt Hughes 2026-03-15 00:54:49
49
```
50
For a development shell:
51
```
bb906d Matt Hughes 2026-03-16 07:14:26
52
docker run -it -v ./:C:\pointcaster -w C:\pointcaster pointcaster-win
891c5a Matt Hughes 2026-03-14 14:08:46
53
```
365e08 Matt Hughes 2026-03-16 07:36:43
54
And from inside:
55
```pwsh
56
cmake --preset linux-release
57
cmake --build build/linux-release
58
cmake --build build/linux-release --target install
59
cmake --build build/linux-release --target package
60
```
e07bf3 Matt Hughes 2026-03-16 07:19:41
61
### Windows Builds in an IDE