Automated mirror of godotengine/godot-cpp with prebuilt binaries for all platforms, plus a GitHub Action for easy integration into your GDExtension projects.
This repository provides two ways to speed up your GDExtension development:
- Prebuilt Packages: Download complete godot-cpp packages with source code and precompiled libraries for all platforms
- GitHub Action: Automatically integrate godot-cpp with prebuilt binaries into your CI/CD pipeline
Building godot-cpp from source can take significant time. This repository automatically mirrors stable releases and provides precompiled binaries alongside the complete source code with pre-generated headers, saving you both compilation time and header generation time when developing Godot extensions.
Each release includes prebuilt artifacts for:
- Linux (x86_64)
- Windows (x86_64)
- macOS (Universal)
- Android (arm64)
- iOS (arm64)
- Web (WebAssembly)
Both regular and CMake variants are included for each platform.
Add this to your workflow to automatically download and cache prebuilt binaries:
- name: Setup GDExtension Build Environment
uses: NodotProject/godot-cpp-builds@v1
with:
godot-version: '4.5-stable'
godot-cpp-path: './godot-cpp'
- name: Build GDExtension
run: |
scons platform=linux target=template_releaseSee the GitHub Action Usage section for more details.
- Go to the Releases page
- Download the prebuilt binary for your target platform
- Extract and use in your Godot extension project
name: Build GDExtension
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup GDExtension Build Environment
uses: NodotProject/godot-cpp-builds@v1
with:
godot-version: '4.5-stable'
godot-cpp-path: './godot-cpp'
- name: Build GDExtension
run: |
scons platform=linux target=template_releasename: Build GDExtension (Multi-platform)
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
include:
- platform: linux
os: ubuntu-latest
- platform: windows
os: windows-latest
- platform: macos
os: macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Download godot-cpp Builds
uses: NodotProject/godot-cpp-builds@v1
with:
godot-version: '4.5-stable'
godot-cpp-path: './godot-cpp'
- name: Build GDExtension
run: |
scons platform=${{ matrix.platform }} target=template_release| Input | Description | Required | Default |
|---|---|---|---|
godot-version |
Godot version to use (e.g., 4.5-stable, 4.4.1-stable) |
Yes | 4.5-stable |
godot-cpp-path |
Path where godot-cpp submodule is located | No | ./godot-cpp |
cache-enabled |
Enable caching of downloaded godot-cpp binaries | No | true |
| Output | Description |
|---|---|
godot-cpp-path |
Path to the extracted godot-cpp directory |
cache-hit |
Whether the cache was hit (true or false) |
This repository uses GitHub Actions to:
- Check for new stable releases from godotengine/godot-cpp every 6 hours
- Clone the complete godot-cpp source code for the release tag
- Generate binding headers using SCons (saves you from having to run this step)
- Download precompiled artifacts from the official CI builds
- Package source, generated headers, and binaries together as GitHub releases
- Skip processing if a release already exists for that version
The workflow runs automatically but can also be triggered manually from the Actions tab.
When you use the GitHub Action in your workflow:
- It checks if godot-cpp with prebuilt binaries for the specified Godot version is cached
- If not cached, it downloads the complete package (source + binaries) from this repository's releases
- The package is extracted into your specified godot-cpp directory
- Everything is cached for future workflow runs
- The prebuilt package must be available for your specified Godot version
- If using with an existing godot-cpp submodule, the action will replace it with the prebuilt version
Check that your specified version exists in the releases. The version format should match the release tags (e.g., 4.5-stable).
If you need to clear the cache:
- Go to your repository's Actions tab
- Click "Caches" in the sidebar
- Delete the relevant cache entries
You can also disable caching by setting cache-enabled: 'false'.
MIT License - See LICENSE for details.
The godot-cpp library itself is licensed under the MIT license by the Godot Engine community.
Hi! I’m krazyjakee 🎮, creator and maintainer of the NodotProject - a suite of open‑source Godot tools (e.g. Nodot, Gedis, GedisQueue etc) that empower game developers to build faster and maintain cleaner code.
I’m looking for sponsors to help sustain and grow the project: more dev time, better docs, more features, and deeper community support. Your support means more stable, polished tools used by indie makers and studios alike.
Every contribution helps maintain and improve this project. And encourage me to make more projects like this!
This is optional support. The tool remains free and open-source regardless.
Created with ❤️ for Godot Developers
For contributions, please open PRs on GitHub