Godot can load the bridge without rebuilding the engine.
GDExtension lets an official Godot build load native code through a stable C interface. The maintained godot-cpp bindings wrap that interface in C++ classes that can appear beside built-in nodes. This route differs from an engine module, which requires a custom engine build and matching export templates.[1]
The new Conan recipe turns godot-cpp into a package dependency. A project can declare it beside another C++ library, generate CMake package files, and build one extension shared library. Conan's published example links godot-cpp/10.0.0 with flecs/4.1.6 and writes the result into the Godot project's demo/bin directory.[2]
The dependency manager solves acquisition. You still own compatibility and loading.
Version compatibility has a direction.
The Conan article says godot-cpp 10 can generate bindings for Godot API versions 4.3 through 4.7. It also states that an extension built against 4.3 can run on newer 4.x releases, but not on older ones. The practical rule is to choose the oldest Godot release you support and record it in the build receipt.[1]
Do not collapse the Godot API version and the godot-cpp package version into one label. One identifies the engine interface generated into the bindings. The other identifies the package recipe and source release. Save both.
Debug and release are different cargo.
The bindings use named targets. template_debug is loaded by the editor and debug exports. template_release is for release exports. An editor target is available for editor-only libraries. The .gdextension file maps platform and feature tags, such as linux.debug, to exact library paths.[1]
A successful editor run does not prove the release export. Build both required targets. Open the generated package. Confirm that every declared load path exists. Launch each export on the oldest supported runtime instead of assuming the editor covered it.
CMake receives a graph, not a pile of flags.
Conan's CMakeDeps generator creates CMake config files for each dependency. CMakeToolchain translates the selected compiler, architecture, standard library, build type, and related settings into CMake inputs. The example then uses ordinary find_package() and target_link_libraries() calls.[3]
This is the useful abstraction. The project asks for named targets. The package manager resolves binary settings. CMake links the graph. None of that removes ABI risk. Linux builds still need a compatible libstdc++, unless the project chooses another deliberate distribution strategy.[1]
Use one receipt per shipped binary.
Record the Godot version, godot-cpp package revision, API option, target, operating system, architecture, compiler, C++ standard, standard library, lockfile or graph, output hash, load-map entry, and runtime result. A matrix row without a produced file is a plan. A file without a launch result is an untested artifact.
The command conan build . --build=missing is real in the published example. It is not universal paste-and-go advice. The example notes a C++17 requirement and platform-specific distribution concerns. Read its recipe, profile the target machine, and inspect the resulting library before loading it into a project.[2]