Building Pointcaster
Source code for Pointcaster is available on Github. Start by cloning the repository:
git clone https://github.com/eidetic-av/pointcaster.git cd pointcaster
Linux
Builds on Linux use a containerised environment created using the Dockerfile in the root of the repository. This handles download and configuration of all dependencies. Either Docker or Podman must be installed and configured on your system to proceed.
The Pointcaster AppImage can be built from the repository root like so:
docker build -t pointcaster-linux . docker run --rm -it -v ./:/pointcaster:Z -w /pointcaster pointcaster-linux ./scripts/build-linux-release.sh
The docker run command arguments ensure that the repository is mounted inside the container and set as the working directory.
For a development shell, invoke bash or fish, where you can configure and build using cmake:
docker run --rm -it -v ./:/pointcaster:Z -w/pointcaster pointcaster-linux bash
Then from inside:
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 build/linux-release/Pointcaster-Linux-<version>.AppImage, both of which can be run from outside the container.
The docker 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
Official Windows builds use the Docker engine.
Because of the nature of Docker on Windows, this isn't so great to use for development.
- Enable Hyper-V & Containers Windows Features
- Install docker desktop
- Switching docker engine:
& "$Env:ProgramFiles\Docker\Docker\DockerCli.exe" -SwitchDaemon
build:
docker build -f Dockerfile.win -t pointcaster-win .
For a development shell:
docker run --rm -it -v ./:C:\pointcaster -w/pointcaster pointcaster-win powershell
