Record inline function debug info in PDB files (r=asherkin).
1 # vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
4 builder.SetBuildFolder('package')
8 'addons/sourcemod/bin',
9 'addons/sourcemod/plugins',
10 'addons/sourcemod/plugins/disabled',
11 'addons/sourcemod/gamedata',
12 'addons/sourcemod/gamedata/core.games',
13 'addons/sourcemod/gamedata/sdkhooks.games',
14 'addons/sourcemod/gamedata/sdktools.games',
15 'addons/sourcemod/gamedata/sm-cstrike.games',
16 'addons/sourcemod/configs',
17 'addons/sourcemod/configs/geoip',
18 'addons/sourcemod/translations',
19 'addons/sourcemod/logs',
20 'addons/sourcemod/extensions',
21 'addons/sourcemod/data',
22 'addons/sourcemod/configs/sql-init-scripts',
23 'addons/sourcemod/configs/sql-init-scripts/mysql',
24 'addons/sourcemod/configs/sql-init-scripts/sqlite',
25 'addons/sourcemod/scripting',
26 'addons/sourcemod/scripting/include',
27 'addons/sourcemod/scripting/admin-flatfile',
28 'addons/sourcemod/scripting/adminmenu',
29 'addons/sourcemod/scripting/testsuite',
30 'addons/sourcemod/scripting/basecommands',
31 'addons/sourcemod/scripting/basecomm',
32 'addons/sourcemod/scripting/funvotes',
33 'addons/sourcemod/scripting/basevotes',
34 'addons/sourcemod/scripting/basebans',
35 'addons/sourcemod/scripting/funcommands',
36 'addons/sourcemod/scripting/playercommands',
41 # Create the distribution folder hierarchy.
43 for folder in folder_list:
44 norm_folder = os.path.normpath(folder)
45 folder_map[folder] = builder.AddFolder(norm_folder)
48 for cxx_task in SM.binaries:
49 builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin'])
50 for cxx_task in SM.extensions:
51 builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions'])
52 builder.AddCopy(SM.spcomp.binary, folder_map['addons/sourcemod/scripting'])
54 # Copy debugging files.
55 if builder.options.packdebug and builder.target_platform != 'mac':
56 for cxx_task in SM.binaries:
57 builder.AddCopy(cxx_task.debug, folder_map['addons/sourcemod/bin'])
58 for cxx_task in SM.extensions:
59 builder.AddCopy(cxx_task.debug, folder_map['addons/sourcemod/extensions'])
61 # Copy version_auto.inc.
62 for header in SM.generated_headers:
63 if 'version_auto.inc' in header.path:
64 builder.AddCopy(header, folder_map['addons/sourcemod/scripting/include'])
66 # Export PDB files. We write to a file in the build folder which is pretty
67 # verboten, but it's okay if it's in the root since AMBuild will never try
69 full_binary_list = SM.binaries + SM.extensions + [SM.spcomp]
70 with open(os.path.join(builder.buildPath, 'pdblog.txt'), 'w') as fp:
71 for task in full_binary_list:
72 fp.write(task.debug.path + '\n')
75 disabled_plugins = set([
76 'admin-sql-prefetch.smx',
77 'admin-sql-threaded.smx',
78 'sql-admin-manager.smx',
85 for smx_file in SM.smx_files:
86 smx_entry = SM.smx_files[smx_file]
87 if smx_file in disabled_plugins:
88 builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins/disabled'])
90 builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins'])
92 # Do all straight-up file copies from the source tree.
93 def CopyFiles(src, dest, files):
96 dest_entry = folder_map[dest]
97 for source_file in files:
98 source_path = os.path.join(builder.sourcePath, src, source_file)
99 builder.AddCopy(source_path, dest_entry)
101 CopyFiles('configs', 'addons/sourcemod/configs',
102 [ 'admin_groups.cfg',
104 'admin_overrides.cfg',
105 'adminmenu_cfgs.txt',
106 'adminmenu_custom.txt',
107 'adminmenu_grouping.txt',
108 'adminmenu_sorting.txt',
118 CopyFiles('configs/geoip', 'addons/sourcemod/configs/geoip', ['GeoIP.dat'])
119 CopyFiles('configs/cfg', 'cfg/sourcemod',
120 [ 'sm_warmode_off.cfg',
125 CopyFiles('configs/metamod', 'addons/metamod', ['sourcemod.vdf'])
126 CopyFiles('configs/sql-init-scripts/mysql', 'addons/sourcemod/configs/sql-init-scripts/mysql',
127 [ 'clientprefs-mysql.sql',
129 'update_admins_r1409.sql',
132 CopyFiles('configs/sql-init-scripts/sqlite', 'addons/sourcemod/configs/sql-init-scripts/sqlite',
133 [ 'admins-sqlite.sq3',
134 'clientprefs-sqlite.sq3',
135 'clientprefs-sqlite.sql',
137 'update_admins-r1409.sql',
140 CopyFiles('gamedata', 'addons/sourcemod/gamedata', ['sm-tf2.games.txt'])
141 CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games',
142 [ 'common.games.txt',
148 'engine.insurgency.txt',
151 'game.alienswarm.txt',
159 'game.garrysmod.txt',
163 'game.insurgency.txt',
167 'game.nucleardawn.txt',
170 'game.sourceforts.txt',
177 CopyFiles('gamedata/sdktools.games', 'addons/sourcemod/gamedata/sdktools.games',
178 [ 'common.games.txt',
187 'engine.ep2valve.txt',
189 'engine.insurgency.txt',
192 'engine.sdk2013.txt',
195 'game.alienswarm.txt',
208 'game.garrysmod.txt',
213 'game.insurgency.txt',
215 'game.left4dead2.txt',
218 'game.nucleardawn.txt',
223 'game.sourceforts.txt',
231 CopyFiles('gamedata/core.games', 'addons/sourcemod/gamedata/core.games',
232 [ 'blacklist.plugins.txt',
242 'engine.ep2valve.txt',
244 'engine.insurgency.txt',
247 'engine.sdk2013.txt',
252 CopyFiles('gamedata/sm-cstrike.games', 'addons/sourcemod/gamedata/sm-cstrike.games',
258 CopyFiles('plugins', 'addons/sourcemod/scripting',
259 [ 'admin-sql-prefetch.sp',
260 'admin-sql-threaded.sp',
282 'sql-admin-manager.sp',
285 CopyFiles('plugins/include', 'addons/sourcemod/scripting/include',
297 'commandfilters.inc',
304 'entity_prop_stocks.inc',
324 'sdktools_client.inc',
325 'sdktools_engine.inc',
326 'sdktools_entinput.inc',
327 'sdktools_entoutput.inc',
328 'sdktools_functions.inc',
329 'sdktools_gamerules.inc',
330 'sdktools_hooks.inc',
331 'sdktools_sound.inc',
332 'sdktools_stocks.inc',
333 'sdktools_stringtables.inc',
334 'sdktools_tempents.inc',
335 'sdktools_tempents_stocks.inc',
336 'sdktools_trace.inc',
337 'sdktools_voice.inc',
351 CopyFiles('translations', 'addons/sourcemod/translations',
352 [ 'adminhelp.phrases.txt',
353 'adminmenu.phrases.txt',
354 'antiflood.phrases.txt',
355 'basebans.phrases.txt',
356 'basecomm.phrases.txt',
357 'basetriggers.phrases.txt',
358 'basevotes.phrases.txt',
359 'clientprefs.phrases.txt',
360 'common.phrases.txt',
362 'funcommands.phrases.txt',
363 'funvotes.phrases.txt',
364 'mapchooser.phrases.txt',
365 'nextmap.phrases.txt',
366 'nominations.phrases.txt',
367 'playercommands.phrases.txt',
368 'plugin.basecommands.txt',
369 'reservedslots.phrases.txt',
370 'rockthevote.phrases.txt',
371 'sounds.phrases.txt',
372 'sqladmins.phrases.txt',
375 CopyFiles('public/licenses', 'addons/sourcemod',
381 CopyFiles('plugins/admin-flatfile', 'addons/sourcemod/scripting/admin-flatfile',
382 [ 'admin-flatfile.sp',
384 'admin-overrides.sp',
389 CopyFiles('plugins/adminmenu', 'addons/sourcemod/scripting/adminmenu', ['dynamicmenu.sp'])
390 CopyFiles('plugins/testsuite', 'addons/sourcemod/scripting/testsuite',
395 'clientprefstest.sp',
397 'entpropelements.sp',
403 'gamerules-props.sp',
416 CopyFiles('plugins/basecommands', 'addons/sourcemod/scripting/basecommands',
425 CopyFiles('plugins/basecomm', 'addons/sourcemod/scripting/basecomm',
431 CopyFiles('plugins/funvotes', 'addons/sourcemod/scripting/funvotes',
439 CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes',
445 CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans', ['ban.sp'])
446 CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands',
457 CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands',