mirror of
https://github.com/godotengine/godot.git
synced 2024-12-21 10:25:24 +08:00
30783d57cc
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin. Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin. Changed platform code so it's not affected by the move. Modified Xcode project file to remove parameters that doesn't make any effect. Added basic '.gdip' plugin config file.
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
import modules_builders
|
|
import os
|
|
|
|
Import("env")
|
|
|
|
env_modules = env.Clone()
|
|
|
|
Export("env_modules")
|
|
|
|
# Header with MODULE_*_ENABLED defines.
|
|
env.CommandNoCache(
|
|
"modules_enabled.gen.h",
|
|
Value(env.module_list),
|
|
env.Run(
|
|
modules_builders.generate_modules_enabled,
|
|
"Generating enabled modules header.",
|
|
# NOTE: No need to run in subprocess since this is still executed serially.
|
|
subprocess=False,
|
|
),
|
|
)
|
|
|
|
# Header to be included in `tests/test_main.cpp` to run module-specific tests.
|
|
if env["tests"]:
|
|
env.CommandNoCache(
|
|
"modules_tests.gen.h",
|
|
Value(env.module_list),
|
|
env.Run(
|
|
modules_builders.generate_modules_tests,
|
|
"Generating modules tests header.",
|
|
# NOTE: No need to run in subprocess since this is still executed serially.
|
|
subprocess=False,
|
|
),
|
|
)
|
|
env.AlwaysBuild("modules_tests.gen.h")
|
|
|
|
vs_sources = []
|
|
# libmodule_<name>.a for each active module.
|
|
for name, path in env.module_list.items():
|
|
env.modules_sources = []
|
|
|
|
if not os.path.isabs(path):
|
|
SConscript(name + "/SCsub") # Built-in.
|
|
else:
|
|
SConscript(path + "/SCsub") # Custom.
|
|
|
|
# Some modules are not linked automatically but can be enabled optionally
|
|
# on iOS, so we handle those specially.
|
|
if env["platform"] == "iphone" and name in [
|
|
"arkit",
|
|
"camera",
|
|
"camera_iphone",
|
|
"gamecenter",
|
|
"inappstore",
|
|
"icloud",
|
|
]:
|
|
continue
|
|
|
|
lib = env_modules.add_library("module_%s" % name, env.modules_sources)
|
|
env.Prepend(LIBS=[lib])
|
|
if env["vsproj"]:
|
|
vs_sources += env.modules_sources
|
|
|
|
# libmodules.a with only register_module_types.
|
|
# Must be last so that all libmodule_<name>.a libraries are on the right side
|
|
# in the linker command.
|
|
env.modules_sources = []
|
|
env_modules.add_source_files(env.modules_sources, "register_module_types.gen.cpp")
|
|
lib = env_modules.add_library("modules", env.modules_sources)
|
|
env.Prepend(LIBS=[lib])
|
|
if env["vsproj"]:
|
|
env.modules_sources += vs_sources
|