Skip to content

Automated releaser of godotengine/godot-cpp builds for all platforms.

License

Notifications You must be signed in to change notification settings

NodotProject/godot-cpp-builds

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godot-cpp Prebuilt Binaries

Automated mirror of godotengine/godot-cpp with prebuilt binaries for all platforms, plus a GitHub Action for easy integration into your GDExtension projects.

What is this?

This repository provides two ways to speed up your GDExtension development:

  1. Prebuilt Packages: Download complete godot-cpp packages with source code and precompiled libraries for all platforms
  2. 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.

Available Platforms

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.

Quick Start

Option 1: Use the GitHub Action (Recommended)

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_release

See the GitHub Action Usage section for more details.

Option 2: Manual Download

  1. Go to the Releases page
  2. Download the prebuilt binary for your target platform
  3. Extract and use in your Godot extension project

GitHub Action Usage

Basic Example

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_release

Advanced Example with Multiple Platforms

name: 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

Action Inputs

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

Action Outputs

Output Description
godot-cpp-path Path to the extracted godot-cpp directory
cache-hit Whether the cache was hit (true or false)

How It Works

Automated Package Builds

This repository uses GitHub Actions to:

  1. Check for new stable releases from godotengine/godot-cpp every 6 hours
  2. Clone the complete godot-cpp source code for the release tag
  3. Generate binding headers using SCons (saves you from having to run this step)
  4. Download precompiled artifacts from the official CI builds
  5. Package source, generated headers, and binaries together as GitHub releases
  6. Skip processing if a release already exists for that version

The workflow runs automatically but can also be triggered manually from the Actions tab.

GitHub Action Workflow

When you use the GitHub Action in your workflow:

  1. It checks if godot-cpp with prebuilt binaries for the specified Godot version is cached
  2. If not cached, it downloads the complete package (source + binaries) from this repository's releases
  3. The package is extracted into your specified godot-cpp directory
  4. Everything is cached for future workflow runs

Requirements

  • 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

Troubleshooting

Error: Prebuilt package not found for version X

Check that your specified version exists in the releases. The version format should match the release tags (e.g., 4.5-stable).

Cache not working

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'.

License

MIT License - See LICENSE for details.

The godot-cpp library itself is licensed under the MIT license by the Godot Engine community.

💖 Support Me

Hi! I’m krazyjakee 🎮, creator and maintain­er 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.

ko-fi

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

About

Automated releaser of godotengine/godot-cpp builds for all platforms.

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Languages