Skip to content

EN Editor Build and Packaging

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

Building the Editor: Qt Creator, ZIPs and installers

English · Türkçe · Languages / Diller

Scope: JSON API Forge 0.5.1 · Source review: 17 September 2026 · Language: English

Requirements

Use CMake 3.24+, a C++20 compiler, Qt 6.4+ Core/Gui/Widgets/Network, Qt Test for tests, and Ninja. WebEngineWidgets is optional. The project uses public Qt APIs and a bundled bounded ZIP decoder, without requiring Qt private ZIP headers.

Use the case-sensitive Editor branch. The reviewed commit is a4b3bff9120442533da957621684f34a65fcf15a. Desktop source is not obtained from main or the server's v0.5.1 tag.

Command-line build

git clone --branch Editor --single-branch https://github.com/YoungLionOrganization/JSON-API-Forge.git JSON-API-Forge-Editor
cd JSON-API-Forge-Editor
git checkout a4b3bff9120442533da957621684f34a65fcf15a
cmake -S . -B build/editor -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DFORGE_EDITOR_WARNINGS_AS_ERRORS=ON
cmake --build build/editor --parallel
ctest --test-dir build/editor --output-on-failure
cmake --install build/editor --prefix build/stage

If Qt's CMake package is not found, select the local kit/environment or CMAKE_PREFIX_PATH. Do not commit personal absolute Qt paths to shared source. Use separate build directories for different architectures/compilers.

Qt Creator

Open the repository-root CMakeLists.txt. Match the kit's compiler, Qt version and CPU architecture. Choose the dev or release preset in CMakePresets.json. The target is JSONAPIForgeEditor; the executable is JSON-API-Forge-Editor.

Official Windows CI uses MSVC kits. LLVM-MinGW or another toolchain needs a Qt build with matching ABI; changing only the compiler path is insufficient. WebEngine may not exist for every compiler/architecture combination; the external-browser fallback covers its absence.

Staging and portable runtime

System After staging
Windows Run windeployqt --release --no-translations --compiler-runtime on the staged EXE
Linux Use editor/packaging/linux/bundle-qt.sh and the official launcher
macOS Run macdeployqt -always-overwrite on the staged .app

Keep notices installed by CMake and editor/packaging/stage-notices.py. A portable ZIP contains the full stage, not only the executable. Launch the packaged application in a clean environment and inspect screenshots/test results.

Qt Installer Framework

The official workflow uses platform-specific IFW 4.8.1 tools with pinned hashes. Windows:

./editor/packaging/qtifw/build-installer.ps1 `
  -StageDir build/stage `
  -OutputFile JSON-API-Forge-Editor-v0.5.1-windows-x64-setup.exe

Linux/macOS:

bash editor/packaging/qtifw/build-installer.sh build/stage JSON-API-Forge-Editor-v0.5.1-linux-x64-setup.run linux
# For macOS, change the platform and output name:
# bash editor/packaging/qtifw/build-installer.sh build/stage JSON-API-Forge-Editor-v0.5.1-macos-arm64-setup.dmg macos

First deploy the Qt runtime and ensure binarycreator is on PATH. The shared theme is editor/packaging/qtifw/config/installer.qss. The installer uses platform/application icons instead of a large header-logo pixmap.

For Ubuntu 24.04 ARM64, prepare-linux-tools.sh supplies private compatibility libraries for IFW tools; they are not copied into the Editor runtime or system libraries. Intel IFW tools on Apple Silicon may require Rosetta while the packaged Editor remains native ARM64.

Verification and artifacts

Each of six targets produces ZIP and installer artifacts: 12 product files plus workflow checksum sidecars. Building artifacts does not automatically attach them to an official release. --graph-preview, --team-preview, --window-size and --screenshot support visual inspection, not complete end-to-end coverage of every interactive feature.

Sources and verification

This page describes the behavior at the pinned commits below. Recheck these contracts when upgrading.


English home · All English pages · Version maintenance

Clone this wiki locally