12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/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.
- 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
|