* Build SDKTools for hl2sdk-mock * Fix loading of extensions using advanced naming scheme for hl2sdk-mock * Fix error on missing sv_visiblemaxplayers convar * Build SDKHooks for hl2sdk-mock * Fix x86_64 SourcePawn VM filename * SDKHooks: Ignore missing IEntityListeners list in hl2sdk-mock
		
			
				
	
	
		
			129 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
 | |
| import os
 | |
| 
 | |
| builder.SetBuildFolder('package')
 | |
| 
 | |
| folder_list = [
 | |
|   'addons/sourcemod',
 | |
|   'addons/sourcemod/bin',
 | |
|   'addons/sourcemod/plugins',
 | |
|   'addons/sourcemod/plugins/disabled',
 | |
|   'addons/sourcemod/gamedata',
 | |
|   'addons/sourcemod/gamedata/core.games',
 | |
|   'addons/sourcemod/gamedata/sdkhooks.games',
 | |
|   'addons/sourcemod/gamedata/sdktools.games',
 | |
|   'addons/sourcemod/gamedata/sm-cstrike.games',
 | |
|   'addons/sourcemod/configs',
 | |
|   'addons/sourcemod/configs/geoip',
 | |
|   'addons/sourcemod/translations',
 | |
|   'addons/sourcemod/logs',
 | |
|   'addons/sourcemod/extensions',
 | |
|   'addons/sourcemod/data',
 | |
|   'addons/sourcemod/configs/sql-init-scripts',
 | |
|   'addons/sourcemod/configs/sql-init-scripts/mysql',
 | |
|   'addons/sourcemod/configs/sql-init-scripts/pgsql',
 | |
|   'addons/sourcemod/configs/sql-init-scripts/sqlite',
 | |
|   'addons/sourcemod/scripting',
 | |
|   'addons/sourcemod/scripting/include',
 | |
|   'addons/sourcemod/scripting/admin-flatfile',
 | |
|   'addons/sourcemod/scripting/adminmenu',
 | |
|   'addons/sourcemod/scripting/testsuite',
 | |
|   'addons/sourcemod/scripting/basecommands',
 | |
|   'addons/sourcemod/scripting/basecomm',
 | |
|   'addons/sourcemod/scripting/funvotes',
 | |
|   'addons/sourcemod/scripting/basevotes',
 | |
|   'addons/sourcemod/scripting/basebans',
 | |
|   'addons/sourcemod/scripting/funcommands',
 | |
|   'addons/sourcemod/scripting/playercommands',
 | |
|   'addons/metamod',
 | |
|   'cfg/sourcemod',
 | |
| ]
 | |
| 
 | |
| if 'x86_64' in SM.target_archs:
 | |
|   folder_list.extend([
 | |
|     'addons/sourcemod/bin/x64',
 | |
|     'addons/sourcemod/extensions/x64',
 | |
|   ])
 | |
| 
 | |
| helpers = SM.package_helpers
 | |
| helpers.builder = builder
 | |
| folder_map = helpers.CreateFolders(folder_list)
 | |
| 
 | |
| # Copy binaries.
 | |
| for cxx_task in SM.binaries:
 | |
|   # mms expects our loader (sourcemod_mm) to exist in /bin/
 | |
|   if cxx_task.target.arch == 'x86_64' and not 'sourcemod_mm' in cxx_task.binary.path:
 | |
|     builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin/x64'])
 | |
|   else:
 | |
|     builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin'])
 | |
| for cxx_task in SM.extensions:
 | |
|   if cxx_task.target.arch == 'x86_64':
 | |
|     builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions/x64'])
 | |
|   else:
 | |
|     builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions'])
 | |
| for cxx_task in SM.spvm:
 | |
|   if cxx_task.target.arch == 'x86':
 | |
|     dest_path = os.path.join('addons/sourcemod/bin',
 | |
|                              'sourcepawn.jit.x86' + os.path.splitext(cxx_task.binary.path)[1])
 | |
|     builder.AddCopy(cxx_task.binary, dest_path)
 | |
|   elif cxx_task.target.arch == 'x86_64':
 | |
|     dest_path = os.path.join('addons/sourcemod/bin/x64',
 | |
|                              'sourcepawn.vm' + os.path.splitext(cxx_task.binary.path)[1])
 | |
|     builder.AddCopy(cxx_task.binary, dest_path)
 | |
| 
 | |
| helpers.CopySpcomp('addons/sourcemod/scripting')
 | |
| 
 | |
| # Export PDB files. We write to a file in the build folder which is pretty
 | |
| # verboten, but it's okay if it's in the root since AMBuild will never try
 | |
| # to rmdir the root.
 | |
| full_binary_list = SM.binaries + SM.extensions + SM.spvm + SM.spcomp_bins
 | |
| with open(os.path.join(builder.buildPath, 'pdblog.txt'), 'w') as fp:
 | |
|   for task in full_binary_list:
 | |
|     fp.write(task.debug.path + '\n')
 | |
| 
 | |
| # Copy plugins.
 | |
| disabled_plugins = set([
 | |
|   'admin-sql-prefetch.smx',
 | |
|   'admin-sql-threaded.smx',
 | |
|   'sql-admin-manager.smx',
 | |
|   'mapchooser.smx',
 | |
|   'randomcycle.smx',
 | |
|   'rockthevote.smx',
 | |
|   'nominations.smx',
 | |
| ])
 | |
| 
 | |
| for smx_file in SM.smx_files:
 | |
|   smx_entry = SM.smx_files[smx_file]
 | |
|   if smx_file in disabled_plugins:
 | |
|     builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins/disabled'])
 | |
|   else:
 | |
|     builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins'])
 | |
| 
 | |
| # Do all straight-up file copies from the source tree.
 | |
| helpers.CopyIncludes('addons/sourcemod/scripting/include')
 | |
| 
 | |
| helpers.CopyFiles('configs', 'addons/sourcemod/configs')
 | |
| helpers.CopyFiles('configs/cfg', 'cfg/sourcemod')
 | |
| helpers.CopyFiles('configs/metamod', 'addons/metamod')
 | |
| helpers.CopyFiles('configs/sql-init-scripts/mysql', 'addons/sourcemod/configs/sql-init-scripts/mysql')
 | |
| helpers.CopyFiles('configs/sql-init-scripts/pgsql', 'addons/sourcemod/configs/sql-init-scripts/pgsql')
 | |
| helpers.CopyFiles('configs/sql-init-scripts/sqlite', 'addons/sourcemod/configs/sql-init-scripts/sqlite')
 | |
| helpers.CopyFiles('gamedata', 'addons/sourcemod/gamedata')
 | |
| helpers.CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games')
 | |
| helpers.CopyFiles('gamedata/sdktools.games', 'addons/sourcemod/gamedata/sdktools.games')
 | |
| helpers.CopyFiles('gamedata/core.games', 'addons/sourcemod/gamedata/core.games')
 | |
| helpers.CopyFiles('gamedata/sm-cstrike.games', 'addons/sourcemod/gamedata/sm-cstrike.games')
 | |
| helpers.CopyFiles('plugins', 'addons/sourcemod/scripting', '.sp')
 | |
| helpers.CopyFiles('translations', 'addons/sourcemod/translations')
 | |
| helpers.CopyFiles('licenses', 'addons/sourcemod')
 | |
| helpers.CopyFiles('plugins/admin-flatfile', 'addons/sourcemod/scripting/admin-flatfile')
 | |
| helpers.CopyFiles('plugins/adminmenu', 'addons/sourcemod/scripting/adminmenu')
 | |
| helpers.CopyFiles('plugins/testsuite', 'addons/sourcemod/scripting/testsuite')
 | |
| helpers.CopyFiles('plugins/basecommands', 'addons/sourcemod/scripting/basecommands')
 | |
| helpers.CopyFiles('plugins/basecomm', 'addons/sourcemod/scripting/basecomm')
 | |
| helpers.CopyFiles('plugins/funvotes', 'addons/sourcemod/scripting/funvotes')
 | |
| helpers.CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes')
 | |
| helpers.CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans')
 | |
| helpers.CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands')
 | |
| helpers.CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands')
 |