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

Generate compatibility layer #1415

Open
wants to merge 4 commits into
base: 4.3
Choose a base branch
from
Open

Conversation

Ughuuu
Copy link

@Ughuuu Ughuuu commented Mar 15, 2024

Generate compatibility layer between godot and godot_cpp at GDExtension level.

@AThousandShips AThousandShips changed the title generate compat layer Generate compatibility layer Mar 15, 2024
@AThousandShips AThousandShips added enhancement This is an enhancement on the current functionality topic:buildsystem Related to the buildsystem or CI setup labels Mar 15, 2024
@AThousandShips AThousandShips added this to the 4.x milestone Mar 15, 2024
@Ughuuu
Copy link
Author

Ughuuu commented Mar 15, 2024

Actually no need to change the ci since we dont export the headers just the lib atm.

@Ughuuu Ughuuu force-pushed the compat-layer branch 4 times, most recently from c531aa8 to 841edd2 Compare April 6, 2024 17:43
@Ughuuu Ughuuu changed the base branch from master to 4.3 October 20, 2024 09:45
@Ughuuu Ughuuu force-pushed the compat-layer branch 2 times, most recently from 7097bd2 to 6dc467a Compare October 20, 2024 09:47
@Ughuuu
Copy link
Author

Ughuuu commented Oct 20, 2024

Should the output_header_mapping_godot.json file be in the repo at root(or should there be other ways of generating this file every time)? If so it would need to be manually generated each time based on similar/matching godot version (eg. godot-cpp 4.3, godot 4.3)
As for generating it every time, a param could be given to the scons run command (probl as env var) as to where the godot repo is and run the command there and generate the bindings then?
Eg. if you set GODOT_REPO_PATH then the godot_compat bindings are generated, if not no. I'll give it a try and see if it works well will do it like that.

Edit:

Made it work without needing the file commited, just needs to have the godot_repo set, eg.:

scons godot_repo="../godot"

generate compat

generate compat

Update ci.yml

Update binding_generator.py

generate compat

generate compat

lint python files

Update compat_generator.py

update docs

Update binding_generator.py

Update module_converter.py

also collect defines

Add module converter file that converts module based projects to godot_compat

Update ci.yml

update docs

Update compat_generator.py

lint python files

generate compat

generate compat

generate compat

generate compat

Update ci.yml

fix path issue when caling from outside

Update binding_generator.py

update to also take missing classes/structs

Update binding_generator.py

Generate godot compat for dual build

generate compat

generate compat

Update ci.yml

Update binding_generator.py

generate compat

generate compat

lint python files

Update compat_generator.py

update docs

Update binding_generator.py

Update module_converter.py

also collect defines

Add module converter file that converts module based projects to godot_compat

Update ci.yml

update docs

Update compat_generator.py

lint python files

generate compat

generate compat

generate compat

generate compat

Update ci.yml

fix path issue when caling from outside

Add support for build profiles.

Allow enabling or disabling specific classes (which will not be built).

Allow forwarding from `ClassDB` to `ClassDBSingleton` to support enumerations

update to also take missing classes/structs

Update binding_generator.py

update

update naming of files

add godot mappings.

update and run output_header_mapping.json

Update README.md

make godot_compat work without a file generated

fix the test

Update binding_generator.py

Update binding_generator.py

Update binding_generator.py

use files from include too

Update README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is an enhancement on the current functionality topic:buildsystem Related to the buildsystem or CI setup
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add an easier way to support GDExtensions for both addons and modules, specifically for includes
3 participants