# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python: import os # This is where the files will be output to # package is the default builder.SetBuildFolder('package') # Add any folders you need to this list folder_list = [ 'addons/sourcemod/extensions', 'addons/sourcemod/gamedata', 'addons/sourcemod/configs', 'addons/sourcemod/scripting', 'addons/sourcemod/scripting/include', ] # Are we build a x86_64 extension ? for task in Accelerator.extension: if task.target.arch == 'x86_64': folder_list += ['addons/sourcemod/extensions/x64'] break # Create the distribution folder hierarchy. folder_map = {} for folder in folder_list: norm_folder = os.path.normpath(folder) folder_map[folder] = builder.AddFolder(norm_folder) # Do all straight-up file copies from the source tree. def CopyFiles(src, dest, files): if not dest: dest = src dest_entry = folder_map[dest] for source_file in files: source_path = os.path.join(builder.sourcePath, src, source_file) builder.AddCopy(source_path, dest_entry) def CopyFile(src, dest): dest_entry = folder_map[dest] source_path = os.path.join(builder.sourcePath, src) builder.AddCopy(source_path, dest_entry) def CopyDirContent(src, dest): dest_entry = folder_map[dest] for item in os.scandir(os.path.join(builder.sourcePath, src)): if item.is_file(): builder.AddCopy(item.path, dest_entry) # Include files CopyFiles('scripting/include', 'addons/sourcemod/scripting/include', [ 'accelerator.inc', ] ) # Example files CopyFiles('scripting', 'addons/sourcemod/scripting', [ 'accelerator_example.sp', ] ) # Copy binaries. for task in Accelerator.extension: if task.target.arch == 'x86_64': builder.AddCopy(task.binary, folder_map['addons/sourcemod/extensions/x64']) else: builder.AddCopy(task.binary, folder_map['addons/sourcemod/extensions']) CopyDirContent('gamedata', 'addons/sourcemod/gamedata') CopyFile('extension/accelerator.autoload', 'addons/sourcemod/extensions')