Skip to content

Platform

Bartłomiej Mucha edited this page Sep 6, 2026 · 1 revision

Platform, dependencies and distribution

Supported targets and toolchains, the third-party code the library links, and how it is packaged and shipped.


Cross-Platform Targets

Platform Status Notes
Windows 10/11 Primary Developer's main OS
Linux Supported CMake + vcpkg, standard Qt6 packages
macOS Supported Qt renders via Metal
iOS (iPad) Not planned Web app approach preferred (see §10)

No platform-specific code in libplatemaker. Platform differences isolated to CMake configuration.


Development Environment

  • IDE: VS Code with CMake Tools, C/C++, Remote-WSL extensions
  • AI assistant: Claude Code (VS Code extension) with Anthropic API key
  • Windows build: MSVC toolchain, CMake preset windows-msvc; MinGW via windows-mingw
  • Linux build: GCC in WSL2, CMake preset linux-gcc (same source tree, same C:\ path)
  • Source location: Windows filesystem (C:\), NOT inside WSL /home/ — required for Remote-WSL to share files correctly

Third-Party Dependencies

Library Version Licence Purpose
libvips ≥ 8.15 LGPL v2.1 Image loading, scaling (Lanczos3), saving. 8.15 floor: ImageIO::encode uses VIPS_FOREIGN_KEEP_ICC. Windows bundles 8.18; Linux uses system libvips (Ubuntu 24.04+).
nlohmann/json 3.x MIT Workspace JSON serialisation
CMake 3.21+ BSD Build system
vcpkg latest MIT Package management

libplatemaker LGPL note: libplatemaker itself is LGPL 3.0. Dynamic linking required — end users must be able to relink against a modified version. Distribute as platemaker.dll / libplatemaker.so. LGPL permits monetisation (donations) as long as the library remains dynamically linked and unmodified.


Distribution

CLI binary

Platform Format Notes
Windows ZIP (exe + DLLs) Bundle platemaker.exe + libvips*.dll
Linux tarball or AppImage libplatemaker.so + platemaker binary

libplatemaker dev package

Published as a GitHub Release asset alongside the CLI. The Qt GUI project fetches and unpacks it to consume find_package(platemaker CONFIG REQUIRED).

Platform Format Contents
Windows (MSVC) ZIP bin/platemaker.dll, lib/platemaker.lib, lib/cmake/platemaker/, include/
Windows (MinGW) ZIP bin/platemaker.dll, lib/libplatemaker.dll.a, lib/cmake/platemaker/, include/
Linux tarball lib/libplatemaker.so, lib/cmake/platemaker/, include/

GitHub Actions builds all artefacts automatically on every version tag push (v*):

git tag v1.0.0 && git push --tags
  → GitHub Actions builds Windows (MSVC + MinGW) + Linux in parallel
  → Attaches CLI ZIPs and dev package archives to the Release


See also: Home · Workspace · Project · Render · Preview · Canvas-Profiles · Processing-Steps · Components · CLI · Platform · Roadmap · Diagrams

Clone this wiki locally