mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.8 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.
 | |
| 
 | |
|     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
 | 
