An experimental replacement for godot-cpp built from scratch that runs as a highly-portable freestanding (-nostdlib) environment, with a focus on utilizing Modern C++ features (C++23 and beyond).
  • C++ 87.7%
  • Makefile 6.5%
  • Python 5.3%
  • C 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-27 02:10:03 -07:00
include Change annotation registration system (wip, see TestSprite.cpp) 2026-10-27 02:10:03 -07:00
src Change annotation registration system (wip, see TestSprite.cpp) 2026-10-27 02:10:03 -07:00
.gitignore Add crutial support for muilt-target building to Makefile 2026-10-25 23:48:29 -07:00
compile_flags.txt Refine clangd hint flags 2026-10-24 19:43:33 -07:00
gdextension_api_extras.py Improve formatting in gdextension_api_extras.h 2026-10-25 20:26:58 -07:00
LICENSE.txt Append copyright line from godot-cpp to license 2026-10-21 18:32:58 -07:00
Makefile Move target triple flag out of platform-specific flags in Makefile 2026-10-26 17:42:20 -07:00
README.md Update README.md due to Makefile changes 2026-10-26 02:16:38 -07:00

gdxx

An experimental replacement for godot-cpp built from scratch that runs as a highly-portable freestanding (-nostdlib) environment, with a focus on utilizing Modern C++ features (C++23 and beyond).

Current status: INCOMPLETE, NOT production-ready. Core features are still missing.

An incomplete experimental test gdextension can be compiled for Linux using make testsprite.so or make RELEASE= testsprite.so using src/TestSprite.cpp as the library entry point, which is not meant to execute in Godot yet; it is currently meant to be analyzed manually by disassembling the artifact using llvm-objdump -sxdC testsprite.so or equivalent.

Build Requirements

You will need:

  • Clang/LLVM with C++23 support minimum (tested on 23.1.1)
  • GNU Make (tested on 4.4.1), or equivalent compatible Make
  • Godot 4.7--4.x (for fetching gdextension_interface.h via Makefile)
  • Python 3.x (for generating gdextension_api_extras.h, called via Makefile)
  • (...and that's it! No system libraries, no mingw or osxcross required for cross-compilation!)

...with the following tools recommended:

  • clangd (IDE code completion)
  • VS Code with clangd support, or equivalent IDE text editor

Building

Building can be done for all platforms by running make or make all, and optionally make RELEASE= all for release builds. Use the V= option to enable verbose building output.

Specific platforms can be built independently with make. The following targets are supported:

  • make linux --- Linux, all CPUs
  • make linux-x64 --- Linux, only x86_64
  • (...more to come soon!)
  • make dev --- Only generates the gdextension .h files, used for development
  • make clean --- Cleans up all build files

...with the raw target triplets that the above are aliased towards:

  • make x86_64-unknown-linux-itanium --- linux-x64