Build from Source
Most users should install a release package. Build from source when you are developing Gode itself, testing a patch, or producing internal binaries for a controlled platform matrix.
Prerequisites
Section titled “Prerequisites”Initialize submodules:
git submodule update --init --recursiveInstall generator dependencies:
python -m pip install -r generator/requirements.txtPrepare libnode in the expected layout:
libnode/ include/ windows/x64/libnode.lib linux/x64/libnode.a macos/arm64/libnode.a macos/x64/libnode.a ios/arm64/libnode.a android/arm64/libnode.aFast path
Section titled “Fast path”Windows:
./shell/build-windows.ps1Linux:
./shell/build-linux.shThese commands default to Debug, use incremental builds, choose an available CMake generator automatically, and output binaries into the example addon. Runtime libraries are written under binary/<platform>/<arch>/; desktop builds also produce the editor-only library under binary/editor/<platform>/<arch>/.
Common options
Section titled “Common options”| Option | Purpose |
|---|---|
--config Release / -Configuration Release |
Build a release binary. |
--jobs 8 / -Jobs 8 |
Control build parallelism. |
--fresh / -Fresh |
Reconfigure while preserving build outputs where possible. |
--clean / -Clean |
Delete the current platform, architecture, and config build directory. |
--skip-codegen / -SkipCodegen |
Skip code generation when only native source changed. |
Build output
Section titled “Build output”Build directories are separated by platform, architecture, and configuration:
build/<platform>/<arch>/<config>/Runtime plugin binaries are written to:
example/addons/gode/binary/<platform>/<arch>/Desktop builds also write the development-only editor extension to:
example/addons/gode/binary/editor/<platform>/<arch>/Debug and Release builds for the same platform and architecture overwrite the same example addon binaries. This makes the sample project load the most recent build.
CI behavior
Section titled “CI behavior”The repository CI builds Release, passes fresh reconfiguration flags, packages generated bindings, and uploads platform artifacts. Local development defaults to incremental builds for faster iteration.