Core

A Go tool that assembles the application source tree into build/<platform>/sources/, mixing the stock Jasonelle sources with your overrides from lib/<platform>/sources/.

Run it after task jsonc, task bundler and task plugins, so the files those tools generate (for example Plugins.swift and Plugins.kt) are not clobbered.

Requirements

  • Go 1.26 or newer (only for compilation. dist/ directory contains binaries).

  • go-task (optional, only for the tasks below).

Overlay

For each platform, build/<platform>/sources/<rel> is resolved with the following precedence (highest first):

  1. lib/<platform>/sources/<rel> — a project override. Always wins.

  2. An existing file at the destination, e.g. Plugins.swift / Plugins.kt generated by the plugins tool.

  3. sources/<platform>/<rel> — the stock core file.

Top-level JLPlugin* directories in the stock sources are skipped: the plugins tool owns copying and selecting plugins, so this tool does not bring back plugins removed from the configuration. Overrides for those plugins under lib/<platform>/sources/JLPlugin*/ are still applied.

The tool never deletes anything, so files placed in build/<platform> by the other tools are preserved.

Usage

From the repository root:

tools/core/dist/core-<os>-<arch>

With default paths it assembles both platforms.

Flags

Flag Description

--xcode

Path to the Xcode core sources. Default: sources/xcode.

--android

Path to the Android core sources. Default: sources/android.

--xcode-lib

Path to the Xcode override sources. Default: lib/xcode/sources.

--android-lib

Path to the Android override sources. Default: lib/android/sources.

--only

Assemble a single platform (xcode or android). Default: both.

Tasks

From the repository root:

  • task core (cr): assemble both platforms.

  • task core.build (cb): build the tools/core binary.

From tools/core/src:

  • task build (b): cross-compile binaries into ../dist/ for macOS (amd64/arm64), Linux (amd64) and Windows (amd64).

  • task test (t): run the test suite.

Release binaries

dist/ contains prebuilt binaries for each platform, named core-<os>-<arch> (Windows uses .exe).