godotengine / godotengine/godot-cpp

[WIP] Versioning, back-porting, version-detection & forward/backward compatibility

Open
#418 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
2.7k
Forks
809
Avg merge
1d 3h
Merged PRs (30d)
8

Description

----

**TL;DW:**

It would be useful/nice to have:

* A `godot-cpp`-specific version `#define` or similar that could be used to conditionally include different code when building with different branches, especially in situations like `Ref<>` where workarounds that were required in earlier versions cause crashes in later versions. (See: #417)

* Significant `godot-cpp` fixes (like the `Ref<>` one above) back-ported from 3.2 to 3.1 so that in many cases one code-base can support both Godot 3.1 & 3.2. (Or, prioritize 3.1 and forward-port to 3.2.)

*Update:* It seems like the `Ref<>` issue is compatible with earlier versions also.

----

* Versioning, back-porting, version-detection & forward/backward compatibility

* Back-porting to branches of `godot-cpp` specific fixes/improvements.

* Compile-time version detection
* Run-time version detection

Maybe in:

* https://github.com/godotengine/godot-cpp/blob/master/include/core/Godot.hpp
* https://github.com/godotengine/godot-cpp/blob/master/include/core/GodotGlobal.hpp
* https://github.com/godotengine/godot-cpp/blob/master/include/core/Defs.hpp

Related:

* https://github.com/GodotNativeTools/godot_headers/issues/53
* https://github.com/GodotNativeTools/godot_headers/issues/70
* https://github.com/godotengine/godot/issues/35464
* https://github.com/godot-rust/godot-rust/issues/396
* https://github.com/godotengine/godot/pull/39183
* https://github.com/godotengine/godot/pull/39064
* https://github.com/GodotNativeTools/godot_headers/pull/74
* https://github.com/GodotNativeTools/godot_headers/commit/f2122198d51f230d903f9585527248f6cf411494
* https://github.com/GodotNativeTools/godot_headers/issues/72

*[WIP]*

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.