Skip to content
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

GDExtension with compiled native C++ binaries #340

Open
FibreFoX opened this issue Sep 9, 2024 · 1 comment
Open

GDExtension with compiled native C++ binaries #340

FibreFoX opened this issue Sep 9, 2024 · 1 comment

Comments

@FibreFoX
Copy link

FibreFoX commented Sep 9, 2024

Right now there is no way to properly publish a GDExtension project. This makes it very hard to get visibility through the built-in asset library and impossible to provide awesome features for new game developers.

What makes a GDExtension project different than a normal asset project:

  • has to be compiled for each Godot version
  • has to be compiled for each supporting platform (Windows, Linux, MacOS, ...)
  • GitHub project source code does not contain generated binaries
  • might contain other generated files (like supported version strings in the .gdextension-file)

Places I've looked for an existing answer:

Right now the instructions (https://docs.godotengine.org/en/stable/community/asset_library/submitting_to_assetlib.html) do not provide any suggestion how to handle this.

Not sure if this is a duplicate of #109 , because the scope of that issue is a different one (multiple OS) and does not contain the "support multiple godot-versions out of the same project". Not sure if #140 would make this available.

For what I want is to be able to register a project, configure multiple godot-versions and multiple platforms, which then gets taken from a GitHub-release. Using GitHub Actions workflows makes it very easy (and reproducable) to generate these compiled binaries, so reusing them seems appropiate, and removes the need for users to do any compilation step themselves.

@Calinou
Copy link
Member

Calinou commented Sep 16, 2024

See #156 for supporting multiple Godot versions. Note that GDExtension has some forwards-compatibility available if you target an old Godot version (the minimum Godot version specified in the .gdextension file must match the godot-cpp version used, still).

The recommended say to publish a
GDExtension is to use the Custom download provider, and link to a published GitHub Release download containing the add-on's source code and libraries for all supported platforms. This way, a single download provides everything needed for users. Generating this download can be automated using GitHub Actions.

The Godot XR add-ons are packaged this way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants