This gets me far enough for Godot to load the dylib and it starting to execute code. After my research, I think rpaths are the correct way to handle library loading. These fixes should probably therefore be made part of the build process (though I'm not sure yet how).
Python nested error failure
Now the latest run attempt gets me this:
❯ /Applications/Godot.app/Contents/MacOS/Godot /Users/lukas/dev/godot/godot-python-extension/test/project.godot
================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.3.stable.official (77dcf97d82cbfe4e4615475fa52ca03da645dbd8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] 1 libsystem_platform.dylib 0x00007ff8020985ed _sigtramp + 29
[2] 2 ??? 0x0000000000006e6f 0x0 + 28271
[3] pybind11::error_already_set::m_fetched_error_deleter(pybind11::detail::error_fetch_and_normalize*)
[4] 4 libgodot-python.macos.universal.dyl 0x0000000112000966 libgodot-python.macos.universal.dyl + 6502
[5] GDExtensionManager::initialize_extensions(GDExtension::InitializationLevel) (in Godot) + 59
[6] register_core_extensions() (in Godot) + 162
[7] Main::setup(char const*, int, char**, bool) (in Godot) + 16476
[8] main (in Godot) + 299
[9] 9 dyld 0x00007ff801d10418 start + 1896
-- END OF BACKTRACE --
================================================================
zsh: abort /Applications/Godot.app/Contents/MacOS/Godot
I think this happens because PyBind11 is trying to throw an error, but fails on dealloc (?). This happens early in initialize_python_module, I think.
First off, #26 needs to be merged.
It makes it compile, but it's not correct yet.
Patching the Executable
To get a compile that binds
libpython3.12
correctly on launch, I have to modify the executable:This gets me far enough for Godot to load the dylib and it starting to execute code. After my research, I think rpaths are the correct way to handle library loading. These fixes should probably therefore be made part of the build process (though I'm not sure yet how).
Python nested error failure
Now the latest run attempt gets me this:
I think this happens because PyBind11 is trying to throw an error, but fails on dealloc (?). This happens early in
initialize_python_module
, I think.