summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2020-02-08 15:43:10 +0100
committerGitHub <noreply@github.com>2020-02-08 15:43:10 +0100
commit42f04cbc1a59772a5f7eca9c6847fa349b23a70e (patch)
tree8c11dccd0ab5aa2cf762c32ff7c4a1a7121b8e62 /modules
parenta27715d0dac2046c7012a93d41cb5aece966cc19 (diff)
parent4e2dbb1bc0845c9458a47f3ba86b184996fb7444 (diff)
Merge pull request #35982 from akien-mga/scons-modules-enabled-header-and-split
SCons: Split libmodules.a in folder-based libs
Diffstat (limited to 'modules')
-rw-r--r--modules/SCsub23
1 files changed, 16 insertions, 7 deletions
diff --git a/modules/SCsub b/modules/SCsub
index 75483fd637..5b39b18334 100644
--- a/modules/SCsub
+++ b/modules/SCsub
@@ -8,17 +8,26 @@ env_modules = env.Clone()
Export('env_modules')
+# Header with MODULE_*_ENABLED defines.
env.CommandNoCache("modules_enabled.gen.h", Value(env.module_list), modules_builders.generate_modules_enabled)
-env.modules_sources = []
-env_modules.add_source_files(env.modules_sources, "register_module_types.gen.cpp")
-
+# libmodule_<name>.a for each active module.
for module in env.module_list:
+ env.modules_sources = []
SConscript(module + "/SCsub")
-if env['split_libmodules']:
- env.split_lib("modules", env_lib = env_modules)
-else:
- lib = env_modules.add_library("modules", env.modules_sources)
+ # Some modules are not linked automatically but can be enabled optionally
+ # on iOS, so we handle those specially.
+ if env["platform"] == "iphone" and module in ["arkit", "camera"]:
+ continue
+ lib = env_modules.add_library("module_%s" % module, env.modules_sources)
env.Prepend(LIBS=[lib])
+
+# 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])