sourcemod/tools/buildbot/PackageScript

471 lines
12 KiB
Plaintext
Raw Normal View History

# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
2009-08-30 09:46:56 +02:00
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/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',
2009-08-30 09:46:56 +02:00
]
# 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.binaries:
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin'])
for cxx_task in SM.extensions:
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions'])
builder.AddCopy(SM.spcomp.binary, folder_map['addons/sourcemod/scripting'])
if SM.use_auto_versioning():
# Copy version_auto.inc.
for header in SM.generated_headers:
if 'version_auto.inc' in header.path:
builder.AddCopy(header, folder_map['addons/sourcemod/scripting/include'])
# 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.spcomp]
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.
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)
CopyFiles('configs', 'addons/sourcemod/configs',
[ 'admin_groups.cfg',
'admin_levels.cfg',
'admin_overrides.cfg',
'adminmenu_cfgs.txt',
'adminmenu_custom.txt',
'adminmenu_grouping.txt',
'adminmenu_sorting.txt',
'admins.cfg',
'admins_simple.ini',
'banreasons.txt',
'core.cfg',
'databases.cfg',
'languages.cfg',
'maplists.cfg',
]
)
CopyFiles('configs/geoip', 'addons/sourcemod/configs/geoip', ['GeoIP.dat'])
CopyFiles('configs/cfg', 'cfg/sourcemod',
[ 'sm_warmode_off.cfg',
'sm_warmode_on.cfg',
'sourcemod.cfg',
]
)
CopyFiles('configs/metamod', 'addons/metamod', ['sourcemod.vdf'])
CopyFiles('configs/sql-init-scripts/mysql', 'addons/sourcemod/configs/sql-init-scripts/mysql',
[ 'clientprefs-mysql.sql',
'create_admins.sql',
'update_admins_r1409.sql',
]
)
CopyFiles('configs/sql-init-scripts/sqlite', 'addons/sourcemod/configs/sql-init-scripts/sqlite',
[ 'admins-sqlite.sq3',
'clientprefs-sqlite.sq3',
'clientprefs-sqlite.sql',
'create_admins.sql',
'update_admins-r1409.sql',
]
)
CopyFiles('gamedata', 'addons/sourcemod/gamedata',
[ 'funcommands.games.txt',
'sm-tf2.games.txt',
]
)
CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games',
[ 'common.games.txt',
'engine.blade.txt',
'engine.contagion.txt',
'engine.csgo.txt',
'engine.darkm.txt',
'engine.dota.txt',
'engine.ep2v.txt',
'engine.insurgency.txt',
'engine.l4d.txt',
'game.ag2.txt',
'game.alienswarm.txt',
'game.aoc.txt',
'game.cspromod.txt',
'game.cstrike.txt',
'game.dinodday.txt',
'game.empires.txt',
'game.ff.txt',
'game.fof.txt',
'game.garrysmod.txt',
'game.gesource.txt',
'game.hidden.txt',
'game.hl2ctf.txt',
'game.insurgency.txt',
'game.l4d2.txt',
'game.neotokyo.txt',
'game.nmrih.txt',
'game.nucleardawn.txt',
'game.pvkii.txt',
'game.sgtls.txt',
'game.sourceforts.txt',
'game.synergy.txt',
'game.zm.txt',
'game.zpanic.txt',
'master.games.txt',
]
)
CopyFiles('gamedata/sdktools.games', 'addons/sourcemod/gamedata/sdktools.games',
[ 'common.games.txt',
'engine.bgt.txt',
'engine.blade.txt',
'engine.contagion.txt',
'engine.csgo.txt',
'engine.css.txt',
'engine.darkm.txt',
'engine.dota.txt',
'engine.ep1.txt',
'engine.ep2.txt',
'engine.ep2valve.txt',
'engine.eye.txt',
'engine.insurgency.txt',
'engine.l4d.txt',
'engine.l4d2.txt',
'engine.sdk2013.txt',
'engine.swarm.txt',
'game.ag2.txt',
'game.alienswarm.txt',
'game.aoc.txt',
'game.bg2.txt',
'game.cspromod.txt',
'game.cstrike.txt',
'game.dinodday.txt',
'game.dod.txt',
'game.dystopia.txt',
'game.empires.txt',
'game.esmod.txt',
'game.fas.txt',
'game.ff.txt',
'game.fof.txt',
'game.garrysmod.txt',
'game.gesource.txt',
'game.hidden.txt',
'game.hl2ctf.txt',
'game.hl2mp.txt',
'game.insurgency.txt',
'game.ios.txt',
'game.left4dead2.txt',
'game.neotokyo.txt',
'game.nmrih.txt',
'game.nucleardawn.txt',
'game.obsidian.txt',
'game.pvkii.txt',
'game.rnlbeta.txt',
'game.ship.txt',
'game.sourceforts.txt',
'game.synergy.txt',
'game.tf.txt',
'game.zm.txt',
'game.zpanic.txt',
'master.games.txt',
]
)
CopyFiles('gamedata/core.games', 'addons/sourcemod/gamedata/core.games',
[ 'blacklist.plugins.txt',
'common.games.txt',
'engine.bgt.txt',
'engine.blade.txt',
'engine.contagion.txt',
'engine.csgo.txt',
'engine.css.txt',
'engine.darkm.txt',
'engine.dota.txt',
'engine.ep1.txt',
'engine.ep2.txt',
'engine.ep2valve.txt',
'engine.eye.txt',
'engine.insurgency.txt',
'engine.l4d.txt',
'engine.l4d2.txt',
'engine.sdk2013.txt',
'engine.swarm.txt',
'master.games.txt',
]
)
CopyFiles('gamedata/sm-cstrike.games', 'addons/sourcemod/gamedata/sm-cstrike.games',
[ 'game.csgo.txt',
'game.css.txt',
'master.games.txt',
]
)
CopyFiles('plugins', 'addons/sourcemod/scripting',
[ 'admin-sql-prefetch.sp',
'admin-sql-threaded.sp',
'adminhelp.sp',
'adminmenu.sp',
'antiflood.sp',
'basebans.sp',
'basechat.sp',
'basecomm.sp',
'basecommands.sp',
'basetriggers.sp',
'basevotes.sp',
'clientprefs.sp',
'funcommands.sp',
'funvotes.sp',
'mapchooser.sp',
'nextmap.sp',
'nominations.sp',
'playercommands.sp',
'randomcycle.sp',
'reservedslots.sp',
'rockthevote.sp',
'sounds.sp',
'sql-admin-manager.sp',
]
)
CopyFiles('plugins/include', 'addons/sourcemod/scripting/include',
[ 'admin.inc',
'adminmenu.inc',
'adt.inc',
'adt_array.inc',
'adt_stack.inc',
'adt_trie.inc',
'banning.inc',
'basecomm.inc',
'bitbuffer.inc',
'clientprefs.inc',
'clients.inc',
'commandfilters.inc',
'console.inc',
'core.inc',
'cstrike.inc',
'datapack.inc',
'dbi.inc',
'entity.inc',
'entity_prop_stocks.inc',
'events.inc',
'files.inc',
'float.inc',
'functions.inc',
'geoip.inc',
'halflife.inc',
'handles.inc',
'helpers.inc',
'keyvalues.inc',
'lang.inc',
'logging.inc',
'mapchooser.inc',
'menus.inc',
'nextmap.inc',
'profiler.inc',
'protobuf.inc',
'regex.inc',
'sdkhooks.inc',
'sdktools.inc',
'sdktools_client.inc',
'sdktools_engine.inc',
'sdktools_entinput.inc',
'sdktools_entoutput.inc',
'sdktools_functions.inc',
'sdktools_gamerules.inc',
'sdktools_hooks.inc',
'sdktools_sound.inc',
'sdktools_stocks.inc',
'sdktools_stringtables.inc',
'sdktools_tempents.inc',
'sdktools_tempents_stocks.inc',
'sdktools_trace.inc',
'sdktools_voice.inc',
'sorting.inc',
'sourcemod.inc',
'string.inc',
2014-06-05 10:00:36 +02:00
'testing.inc',
'textparse.inc',
'tf2.inc',
'tf2_stocks.inc',
'timers.inc',
'topmenus.inc',
'usermessages.inc',
'vector.inc',
'version.inc',
]
)
CopyFiles('translations', 'addons/sourcemod/translations',
[ 'adminhelp.phrases.txt',
'adminmenu.phrases.txt',
'antiflood.phrases.txt',
'basebans.phrases.txt',
'basecomm.phrases.txt',
'basetriggers.phrases.txt',
'basevotes.phrases.txt',
'clientprefs.phrases.txt',
'common.phrases.txt',
'core.phrases.txt',
'funcommands.phrases.txt',
'funvotes.phrases.txt',
'mapchooser.phrases.txt',
'nextmap.phrases.txt',
'nominations.phrases.txt',
'playercommands.phrases.txt',
'plugin.basecommands.txt',
'reservedslots.phrases.txt',
'rockthevote.phrases.txt',
'sounds.phrases.txt',
'sqladmins.phrases.txt',
]
)
CopyFiles('public/licenses', 'addons/sourcemod',
[ 'GPLv2.txt',
'GPLv3.txt',
'LICENSE.txt'
]
)
CopyFiles('plugins/admin-flatfile', 'addons/sourcemod/scripting/admin-flatfile',
[ 'admin-flatfile.sp',
'admin-groups.sp',
'admin-overrides.sp',
'admin-simple.sp',
'admin-users.sp',
]
)
CopyFiles('plugins/adminmenu', 'addons/sourcemod/scripting/adminmenu', ['dynamicmenu.sp'])
CopyFiles('plugins/testsuite', 'addons/sourcemod/scripting/testsuite',
[ 'benchmark.sp',
'bug4059.sp',
'callfunctest.sp',
'capstest.sp',
'clientprefstest.sp',
'cstrike-test.sp',
'entpropelements.sp',
'fakenative1.sp',
'fakenative2.sp',
'filetest.sp',
'fwdtest1.sp',
'fwdtest2.sp',
'gamerules-props.sp',
'goto_test.sp',
'outputtest.sp',
'ptstest.sp',
'sorttest.sp',
'sqltest.sp',
'sqltest.sql',
'stacktest.sp',
'structtest.sp',
'tf2-test.sp',
'tries.sp',
2014-07-05 19:01:17 +02:00
'keyvalues.sp',
]
)
CopyFiles('plugins/basecommands', 'addons/sourcemod/scripting/basecommands',
[ 'cancelvote.sp',
'execcfg.sp',
'kick.sp',
'map.sp',
'reloadadmins.sp',
'who.sp',
]
)
CopyFiles('plugins/basecomm', 'addons/sourcemod/scripting/basecomm',
[ 'forwards.sp',
'gag.sp',
'natives.sp',
]
)
CopyFiles('plugins/funvotes', 'addons/sourcemod/scripting/funvotes',
[ 'votealltalk.sp',
'voteburn.sp',
'voteff.sp',
'votegravity.sp',
'voteslay.sp',
]
)
CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes',
[ 'voteban.sp',
'votekick.sp',
'votemap.sp',
]
)
CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans', ['ban.sp'])
CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands',
[ 'beacon.sp',
'blind.sp',
'drug.sp',
'fire.sp',
'gravity.sp',
'ice.sp',
'noclip.sp',
'timebomb.sp',
]
)
CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands',
[ 'rename.sp',
'slap.sp',
'slay.sp',
]
)
if builder.target_platform == 'windows':
CopyFiles('sourcepawn/batchtool', 'addons/sourcemod/scripting', ['compile.exe'])
else:
CopyFiles('plugins', 'addons/sourcemod/scripting', ['compile.sh'])