mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	 c320a82213
			
		
	
	
		c320a82213
		
	
	
	
	
		
			
			The new 'split_libmodules=yes' option is useful to work around linker command line size limitations when linking a huge number of objects. We're currently over 64k chars when linking libmodules.a on Windows with MinGW, which triggers issues as seen in #30892. Even on Linux, we can also reach linker command line size limitations by adding more custom modules. We force this option to True for MinGW on Windows, which fixes #30892. Additional changes to lib splitting: - Fix linking of the split module libs with interdependent symbols, hacking our way into LINKCOM and SHLINKCOM to set the `--start-group` and `--end-group` flags. - Fix Python 3 compatibility in `methods.split_lib()`. - Drop seemingly obsolete condition for 'msys' on 'posix'. - Drop the unnecessary 'split_drivers' as the drivers lib is no longer too big since we moved all thirdparty builds to modules. Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			560 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			560 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| Import('env')
 | |
| 
 | |
| env_modules = env.Clone()
 | |
| 
 | |
| Export('env_modules')
 | |
| 
 | |
| env.modules_sources = []
 | |
| 
 | |
| env_modules.add_source_files(env.modules_sources, "register_module_types.gen.cpp")
 | |
| 
 | |
| for x in env.module_list:
 | |
|     if (x in env.disabled_modules):
 | |
|         continue
 | |
|     env_modules.Append(CPPDEFINES=["MODULE_" + x.upper() + "_ENABLED"])
 | |
|     SConscript(x + "/SCsub")
 | |
| 
 | |
| if env['split_libmodules']:
 | |
|     env.split_lib("modules", env_lib = env_modules)
 | |
| else:
 | |
|     lib = env_modules.add_library("modules", env.modules_sources)
 | |
| 
 | |
|     env.Prepend(LIBS=[lib])
 |