GDExtentions which needs compilation is ignored by GDPlug
Hello there!
I really liked your work on this and It makes creating complex projects, especially those which uses the REUSE spec easier.
But an problem that I found while incorporating your plugin into my project is that when downloading GDExtentions/GDNative plugins which doesn't have the plugin files already pre-compiled within the repository refuses to download anything.
Possible workarounds
- Attempt to use the GitHub Releases API to download the plugins from the releases section(where most likely the bins are precompiled there and ready to use). The possible solution
- Attempt to compile the plugin using cmake or an compilation script within the repo. Most likely the hardest to achieve
- Warn the user that GDExtentions which requires compilation after cloning would be ignored. Easiest, Documented But defeats the purpose of being able to download all kinds of plugins TBH...
Affected Plugins: Godot Jolt Godot Version: 4.1.1 Stable
Thanks, that's interesting! I think I will go with the Github Releases API solution, this is what I can think of now:
- The config will probably looks like this
plug(godot-jolt/godot-jolt, {"release": "true", "tag": "0.6.0-stable"}) - If the
plug(src, args)function can be used to download binaries from github release, it will most likely only capable of handling the binaries or source code one at a time, otherwise it would be a mess to declare 2 destination directories for both binaries and source code(assuming user required to install both) - So the config will looks like this in case both source code and binaries are needed:
# Binaries
plug(godot-jolt/godot-jolt, {"release": "true", "tag": "0.6.0-stable"}) # "install_root" omitted as godot-jolt zip extracted into addons/godot-jolt
# Source code
plug(godot-jolt/godot-jolt, {"tag": "0.6.0-stable"})
One problem though, .plugged/index.cfg using the src(url) as key so 2 configs with same src will conflict.
It would be nice to let me know when you plan to finally release this feature.
I have no planning to implement this yet, not in the near future for sure, as I am busy with my own game project