mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
LibGodot: Core - Build Godot Engine as a Library
* Add a new GodotInstance GDCLASS that provides startup and iteration commands to control a Godot instance. * Adds a libgodot_create_godot_instance entry point that creates a new Godot instance and returns a GodotInstance object. * Adds a libgodot_destroy_godot_instance entry point that destroys the Godot instance. Sample Apps: https://github.com/migeran/libgodot_project Developed by [Migeran](https://migeran.com) Sponsors & Acknowledgements: * Initial development sponsored by [Smirk Software](https://www.smirk.gg/) * Rebasing to Godot 4.3 and further development sponsored by [Xibbon Inc.](https://xibbon.com) * The GDExtension registration of the host process & build system changes were based on @Faolan-Rad's LibGodot PR: https://github.com/godotengine/godot/pull/72883 * Thanks to Ben Rog-Wilhelm (Zorbathut) for creating a smaller, minimal version for easier review. * Thanks to Ernest Lee (iFire) for his support Co-Authored-By: Gabor Koncz <gabor.koncz@migeran.com> Co-Authored-By: Ben Rog-Wilhelm <zorba-github@pavlovian.net>
This commit is contained in:
parent
c01c7b800d
commit
6c44c80c62
23 changed files with 752 additions and 16 deletions
10
methods.py
10
methods.py
|
@ -88,15 +88,19 @@ def redirect_emitter(target, source, env):
|
|||
Emitter to automatically redirect object/library build files to the `bin/obj` directory,
|
||||
retaining subfolder structure. External build files will attempt to retain subfolder
|
||||
structure relative to their environment's parent directory, sorted under `bin/obj/external`.
|
||||
If `redirect_build_objects` is `False`, or an external build file isn't relative to the
|
||||
passed environment, this emitter does nothing.
|
||||
If `redirect_build_objects` is `False`, an external build file isn't relative to the passed
|
||||
environment, or a file is being written directly into `bin`, this emitter does nothing.
|
||||
"""
|
||||
if not env["redirect_build_objects"]:
|
||||
return target, source
|
||||
|
||||
redirected_targets = []
|
||||
for item in target:
|
||||
if base_folder in (path := Path(item.get_abspath()).resolve()).parents:
|
||||
path = Path(item.get_abspath()).resolve()
|
||||
|
||||
if path.parent == base_folder / "bin":
|
||||
pass
|
||||
elif base_folder in path.parents:
|
||||
item = env.File(f"#bin/obj/{path.relative_to(base_folder)}")
|
||||
elif (alt_base := Path(env.Dir(".").get_abspath()).resolve().parent) in path.parents:
|
||||
item = env.File(f"#bin/obj/external/{path.relative_to(alt_base)}")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue