-
-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow godot-cpp to be installable #9364
Comments
This would be great, as it allows package maintainers of, for example, various Linux distributions to include godot-cpp as a package more easily. It's also nice when us developers are able to keep Working with submodules is annoying, and imo is a relic of earlier times: "just vendor everything in your build tree as-is" |
Installing godot-cpp system-wide and dynamically linking it will create some issues with the binary compatibility model of godot-cpp. Currently, you build your extension to statically include the version of godot-cpp and If your extension were dynamically linked to a system-wide godot-cpp, and you updated the system-wide godot-cpp for a newer version of Godot, it could break existing extensions that were compiled against the older godot-cpp. So, you end up in a situation where you need to update and re-compile all your GDExtensions to work with the one godot-cpp. |
@dsnopek CMake should generate library filenames that take into account the version, and a consumer only has to enforce the version requirement through Not everything in e.g In short, you'll be able to install multiple godot-cpp's to a libdir/includedir. There is nothing that says everything in |
Ah, ok, thanks! If developers are still statically linking with godot-cpp, then there is no effect on binary compatibility. |
Describe the project you are working on
Currently making a gdextension library for dammaku.
Describe the problem or limitation you are having in your project
Currently the way to use godot-cpp is to use as a subproject of your project.
A package manager such as vcpkg would be preferable as one doesn't need to rebuild godot-cpp whenever they build a gdextension project.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
I have made a PR that would make godot-cpp installable.
godotengine/godot-cpp#1418
There are other PRs that also try to address this:
godotengine/godot-cpp#1309
godotengine/godot-cpp#1041
One of the authors would like to be able to build & install this in a docker image to save time. So this would have that benefit too.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If this enhancement will not be used often, can it be worked around with a few lines of script?
The work around is using godot-cpp as a subproject, but that can undesirable (unnecessary rebuilds).
Making the library installable, would mean it's a lot easier to port this to package managers.
Is there a reason why this should be core and not an add-on in the asset library?
This feature is for godot-cpp.
The text was updated successfully, but these errors were encountered: