# 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/scripting/include',
  'addons/sourcemod/gamedata'
]

if 'x86_64' in SM.target_archs:
  folder_list.extend([
    'addons/sourcemod/extensions/x64',
  ])

# 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)

# Copy binaries.
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'])

# 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)
    dest_path = os.path.join(dest_entry.path, source_file)
    if not os.path.isfile(str(dest_path)):
      builder.AddCopy(source_path, dest_entry)

# Gamedata (custom so updater doesn't replace it)
CopyFiles('addons/sourcemod/gamedata', 'addons/sourcemod/gamedata',
  [ 'a2sqcache.games.txt' ]
)

# Include file
CopyFiles('addons/sourcemod/scripting/include', 'addons/sourcemod/scripting/include',
  [ 'a2sqcache.inc' ]
)

# Autoload extension
CopyFiles('addons/sourcemod/extensions', 'addons/sourcemod/extensions',
  [ 'a2sqcache.autoload' ]
)
