godot/platform/linuxbsd/SCsub
Gergely Kis 6c44c80c62 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>
2025-10-07 02:15:41 +02:00

52 lines
1.4 KiB
Python

#!/usr/bin/env python
from misc.utility.scons_hints import *
Import("env")
import platform_linuxbsd_builders
common_linuxbsd = [
"crash_handler_linuxbsd.cpp",
"os_linuxbsd.cpp",
"freedesktop_portal_desktop.cpp",
"freedesktop_screensaver.cpp",
"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")
if env["x11"]:
common_linuxbsd += SConscript("x11/SCsub")
if env["wayland"]:
common_linuxbsd += SConscript("wayland/SCsub")
if env["speechd"]:
common_linuxbsd.append("tts_linux.cpp")
if env["use_sowrap"]:
common_linuxbsd.append("speechd-so_wrap.c")
if env["fontconfig"]:
if env["use_sowrap"]:
common_linuxbsd.append("fontconfig-so_wrap.c")
if env["dbus"]:
if env["use_sowrap"]:
common_linuxbsd.append("dbus-so_wrap.c")
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))