-
Notifications
You must be signed in to change notification settings - Fork 1
IDE project configuration for developing Godot GDExtensions using Rider #1
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
base: main
Are you sure you want to change the base?
Conversation
|
If I'm going to introduce config files for other editors then I need to be sure that other people have the need of that. Also need to consider should this also include CLion as well since some people might use that. If the integration has issues or confuses beginners then it might be better to leave it as just only vscode by default? Also maybe the setup.py should have an option
That chooses the editor and based on that will delete the useless config files and we are left only with those he needs VSCode/Zed/Rider/CLion/ Visual Studio etc.. the user chooses one option and the rest is deleted. Should this be reversible, or maybe the option 0 disappears forever after the first time the script is used or maybe it instructs the user to go and download the necessary files for the editor? - maybe runs a command to pull from this remote and get the necessary config file for the editor and keeps it up to date with the latest version of this template, do you get it? Also need to ensure that the .gitignore ignores any cache files or weird file formats that get generated and are not needed It would be a nice feature to include as many editors as possible. Your idea is great but this pr needs lots of work in my opinion |
|
Oh and also it should work for ANY VERSION OF GODOT, not only 4.4.1. So the version should be read from the dont_touch.txt and based on that configure intelise or whatever else. Maybe even needs a whole refactor so that json is used. Another point is that my template currently supports only Scons, it doesn't have CMake integration. I'd like to avoid supporting two different build systems, but if really needed maybe it should be re-introduced. Needs planning. |
|
Also would be nice for the To also check if git, python, Scons or CMake are installed and compatible with the current version of Godot selected, then warn the user or give him commands/ instructions etc.. If you think of anything else or you have motivation working on this please say so, it would be a great addition and will simplify everything for the average user even more. Even better if it also suggests some popular C++ libraries that have good integration with Godot and can be used for performance optimization -> downloads them based on choice and edits the Sconscruct if needed / or the CMake. It really is a lot of features, so carefully think about it and analyze and test. You should test the template to see how it works in the first place. |
|
Also I should let you know that currently debug builds are built without debug symbols by default, maybe this should also be included in that option, since you won't really be able to attach a debugger without debug symbols. Also the debug symbols slow down your build (at least on windows) so this option should be switched/toggled whenever the user decides. There's a lot to take in, so when you have time play around with all this and experiment |
|
Lets keep in touch on it. Let me clarify the workflow I have in Rider. Much less preparation steps are needed. The workflow becomes:
When you want to run/debug:
That’s it. The choice of Solution Configuration automatically controls whether debug symbols are included, so users don’t have to tweak build flags themselves. There are still a couple of open items I haven’t solved yet:
I will post on the progress. Maybe I will take another full walk-through to see if I might be missing something else. |
|
As soon as you have a working solution I'll test the branch and see if it's good. I still believe that if the project supports Rider by adding additional files, it should also support CLion and other commonly used editors (Zed would be very good since it's completely free to use forever even for closed source or commercial projects) If you can do that it would be nice, but if you think that it's out of scope for this pr I get it. |
|
The sln+vcxproj configuration files are pretty much only Rider and Visual Studio. So I can only ensure compatibility with those two in the scope of this pull request. |
|
Alright I understand. Focus on Rider and Visual Studio and ensure it's easy to use and setup. If you have to you can edit the README and provide instructions for beginners that might not be used to using Rider or Visual Studio. Another thing, it is crucial that you ignore Rider/Visual Studio files from the VSCode folder (basically add all files/folders/extensions that should be ignored inside the settings.json of VS Code). Keeping them separate without polluting the explorer is good and avoids confusion. If you can test everything on different operating systems I would really appreciate it. If you find any issues with the template or with compiling (especially on macOS and iOS when exporting a test game project since I don't have those devices) you can open a new PR. Test both setup.py as well as Rider/Visual Studio, that's all. |
|
Also all of this should be compatible with GitHub actions no matter which editor is used, the source files should still end up in the src directory (check the workflow I have right now for building it for every platform) |
60d353a to
0296e30
Compare
|
For some reason the tools folder is deleted and the setup.py script is gone? The test_project folder is now "demo" ? Can you ensure you are working on the latest version of the godot-plus-plus template before submitting a PR, I feel like you copy pasted your solution from the community template and just submitted it without seeing how my code works and integrates with yours |
|
I am sorry, I am under pressure on different tracks lately, so no capacity to continue for now, but I hope to return to it later. |
`libgdexample` string has been replaced by `EXTENSION-NAME` in `demo/bin/example.gdextension
…Brains Rider on all major OS or Visual Studio on Windows. The main addition is a sln project file that configures build settings for all major platforms including Windows, Linux, macOS, iOS, Android, and WebAssembly with different architectures. It includes platform-specific property groups that map to SCons build commands and sets up proper include paths for the Godot C++ bindings. The solution file ties together both the C++ extension project and a demo project, while additional target files provide cross-platform toolchain resolution and macOS debugging entitlements.




If you are interested in this addition, please let me know.
I would test more specifically with your improved template.
Currently I expect, rename project would not be automatically propagated to vcxproj.
There is a short demo in the godotengine#95 comments.