-
Notifications
You must be signed in to change notification settings - Fork 0
Building
sudo pacman -S docker qemu-user-static binfmt-qemu-static
sudo systemctl enable --now docker
sudo systemctl restart systemd-binfmtFor other distros, install the equivalent packages for Docker, qemu-user-static, and binfmt support for aarch64.
./scripts/build-app.shThis runs an ARM64 Docker container (QEMU-emulated on x86_64), installs all dependencies, compiles the C++17 source, strips the binary, and extracts artifacts to deploy/install/.
Output binary: deploy/install/usr/local/bin/microscopi
./scripts/build-image.shRuns pi-gen inside Docker. Produces a compressed image in deploy/. Flash with:
./scripts/flash.sh /dev/sdXNote: Flashing requires write access to a raw block device. Run the flash script yourself — do not give the application root access to do it.
# Copy binary to Pi home dir
scp deploy/install/usr/local/bin/microscopi microscopi@<pi-ip>:~/microscopi
# On the Pi:
sudo mv ~/microscopi /usr/local/bin/microscopi
sudo systemctl restart microscopiThe application checks ~/.config/microscopi.conf before /etc/microscopi.conf:
scp deploy/install/usr/local/etc/microscopi.conf microscopi@<pi-ip>:~/.config/microscopi.confNo restart needed if you only changed display/crop/key settings (they take effect on next launch). A camera or video backend change requires a restart.
cmake -S . -B build-tests -DBUILD_TESTS=ON
cmake --build build-tests
ctest --test-dir build-tests --output-on-failureTests cover: INI config parser, key binding parser, shutter/ISO ladder logic. CI runs these on every push via GitHub Actions.
cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
ln -sf build/compile_commands.json compile_commands.json