import os builder.SetBuildFolder('package') def CreateFolders(folders): folder_dict = {} for folder in folders: path = os.path.normpath(folder) folder_dict[folder] = builder.AddFolder(path) return folder_dict def CopyFiles(src, dest): if os.path.isfile(src): builder.AddCopy(src, dest) return if os.path.isdir(src): for root, _, files in os.walk(src): for file in files: file_path = os.path.join(root, file) relative_path = os.path.relpath(file_path, src) destination = os.path.join(dest, relative_path) builder.AddCopy(file_path, destination) folders = CreateFolders([ 'addons/sourcemod/extensions', 'addons/sourcemod/extensions/x64', 'addons/sourcemod/gamedata', 'addons/sourcemod/scripting', 'addons/sourcemod/scripting/include' ]) pdblog = open(os.path.join(builder.buildPath, 'pdblog.txt'), 'wt') for cxx_task in Extension.extensions: if cxx_task.target.arch == 'x86_64': builder.AddCopy(cxx_task.binary, folders['addons/sourcemod/extensions/x64']) else: builder.AddCopy(cxx_task.binary, folders['addons/sourcemod/extensions']) pdblog.write(cxx_task.debug.path + '\n') pdblog.close() def distribute_package_files(): package_path = os.path.join(Extension.ext_root, "package") if not os.path.isdir(package_path): return for root, _, files in os.walk(package_path): for file in files: file_path = os.path.join(root, file) relative_path = os.path.relpath(file_path, package_path) for folder in folders: if relative_path.startswith(folder): builder.AddCopy(file_path, folders[folder]) break distribute_package_files() debug_info = []