Blame
|
1 | # Building Pointcaster |
||||||
| 2 | ||||||||
|
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 | ``` |
|||||||
|
8 | |||||||
|
9 | ## Linux |
||||||
| 10 | ||||||||
|
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. |
||||||
|
12 | |||||||
|
13 | The Pointcaster AppImage can be built from the repository root like so: |
||||||
|
14 | ```sh |
||||||
|
15 | docker build -t pointcaster-linux . |
||||||
| 16 | docker run --rm -it -v ./:/pointcaster:Z -w /pointcaster pointcaster-linux ./scripts/build-linux-release.sh |
|||||||
|
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`: |
|||||||
|
21 | ```sh |
||||||
|
22 | docker run --rm -it -v ./:/pointcaster:Z -w/pointcaster pointcaster bash |
||||||
|
23 | ``` |
||||||
| 24 | Then from inside: |
|||||||
| 25 | ```sh |
|||||||
|
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 |
|||||||
|
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. |
||||||
|
33 | > [!TIP] |
||||||
|
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). |
||||||
|
35 | |||||||
|
36 | ## Windows |
||||||
|
37 | - Enable Hyper-V & Containers Windows Features |
||||||
| 38 | - Install docker desktop |
|||||||
| 39 | - Switching docker engine: |
|||||||
| 40 | ```pwsh |
|||||||
| 41 | & "$Env:ProgramFiles\Docker\Docker\DockerCli.exe" -SwitchDaemon |
|||||||
| 42 | ``` |
|||||||
| 43 | - Win11 version < 24H2 maybe?: |
|||||||
| 44 | ```pwsh |
|||||||
| 45 | docker pull mcr.microsoft.com/windows/server:ltsc2022 |
|||||||
| 46 | ``` |
|||||||
| 47 | - Only newer win versions can use ltsc2025 maybe? |
|||||||
