mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 10:11:57 +03: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:
@@ -13,6 +13,11 @@ common_linuxbsd = [
|
||||
"freedesktop_at_spi_monitor.cpp",
|
||||
]
|
||||
|
||||
if env["library_type"] == "executable":
|
||||
common_linuxbsd += ["godot_linuxbsd.cpp"]
|
||||
else:
|
||||
common_linuxbsd += ["libgodot_linuxbsd.cpp"]
|
||||
|
||||
if env["use_sowrap"]:
|
||||
common_linuxbsd.append("xkbcommon-so_wrap.c")
|
||||
|
||||
@@ -35,7 +40,13 @@ if env["dbus"]:
|
||||
if env["use_sowrap"]:
|
||||
common_linuxbsd.append("dbus-so_wrap.c")
|
||||
|
||||
prog = env.add_program("#bin/godot", ["godot_linuxbsd.cpp"] + common_linuxbsd)
|
||||
if env["library_type"] == "static_library":
|
||||
prog = env.add_library("#bin/godot", common_linuxbsd)
|
||||
elif env["library_type"] == "shared_library":
|
||||
env.Append(CCFLAGS=["-fPIC"])
|
||||
prog = env.add_shared_library("#bin/godot", common_linuxbsd)
|
||||
else:
|
||||
prog = env.add_program("#bin/godot", common_linuxbsd)
|
||||
|
||||
if env["debug_symbols"] and env["separate_debug_symbols"]:
|
||||
env.AddPostAction(prog, env.Run(platform_linuxbsd_builders.make_debug_linuxbsd))
|
||||
|
||||
Reference in New Issue
Block a user