Generate debugging information during compilation. (bug 5227, r=ds)

This commit is contained in:
Asher Baker 2012-02-16 19:26:49 +00:00
parent 02981cec57
commit 393c54fdc2
18 changed files with 33 additions and 21 deletions

View File

@ -2,6 +2,7 @@
import os
import sys
from ambuild.command import SymlinkCommand
from ambuild.command import ShellCommand
class SM:
def __init__(self):
@ -113,6 +114,7 @@ class SM:
self.compiler.AddToListVar('CFLAGS', '-Wno-switch')
self.compiler.AddToListVar('CFLAGS', '-msse')
self.compiler.AddToListVar('CFLAGS', '-m32')
self.compiler.AddToListVar('CFLAGS', '-g3')
self.compiler.AddToListVar('POSTLINKFLAGS', '-m32')
self.compiler.AddToListVar('CXXFLAGS', '-fno-exceptions')
self.compiler.AddToListVar('CXXFLAGS', '-fno-rtti')
@ -169,9 +171,7 @@ class SM:
if AMBuild.options.debug == '1':
self.compiler.AddToListVar('CDEFINES', 'DEBUG')
self.compiler.AddToListVar('CDEFINES', '_DEBUG')
if self.vendor == 'gcc' or self.vendor == 'clang':
self.compiler.AddToListVar('CFLAGS', '-g3')
elif self.vendor == 'msvc':
if self.vendor == 'msvc':
self.compiler.AddToListVar('CFLAGS', '/Od')
self.compiler.AddToListVar('CFLAGS', '/RTC1')
@ -257,6 +257,17 @@ class SM:
else:
return
def StripBinary(self, job, binary):
workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
src = os.path.join('..', workFolder, binary.binaryFile)
if AMBuild.target['platform'] == 'linux':
job.AddCommand(ShellCommand('objcopy --only-keep-debug ' + src + ' ' + src + '.dbg'))
job.AddCommand(ShellCommand('objcopy --strip-debug ' + src))
job.AddCommand(ShellCommand('objcopy --add-gnu-debuglink=' + src + '.dbg ' + src))
elif AMBuild.target['platform'] == 'darwin':
job.AddCommand(ShellCommand('dsymutil ' + src))
job.AddCommand(ShellCommand('strip -S ' + src))
def PreSetupHL2Job(self, job, builder, sdk):
info = self.sdkInfo[sdk]
sdkPath = AMBuild.cache[info['sdk']]
@ -304,7 +315,7 @@ class SM:
def PostSetupHL2Job(self, job, builder, sdk):
if AMBuild.target['platform'] in ['linux', 'darwin']:
builder.AddObjectFiles(['tier1_i486.a', 'mathlib_i486.a'])
def DefaultHL2Compiler(self, path, sdk, noLink = False, oldMms = '-legacy'):
compiler = self.DefaultExtCompiler(path)

View File

@ -75,4 +75,4 @@ for i in SM.sdkInfo:
SM.PostSetupHL2Job(extension, binary, i)
SM.AutoVersion('core', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -56,4 +56,5 @@ else:
binary.AddSourceFiles('core/logic', files)
SM.AutoVersion('core/logic', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -20,5 +20,4 @@ binary.AddSourceFiles('extensions/bintools', [
])
SM.AutoVersion('extensions/bintools', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -16,4 +16,4 @@ binary.AddSourceFiles('extensions/clientprefs', [
])
SM.AutoVersion('extensions/clientprefs', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -22,4 +22,5 @@ if AMBuild.target['platform'] in sdk['platform']:
])
SM.PostSetupHL2Job(extension, binary, 'ep2v')
SM.AutoVersion('extensions/cstrike', binary)
binary.SendToJob()
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -84,4 +84,4 @@ elif AMBuild.target['platform'] == 'windows':
SM.AutoVersion('extensions/curl', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -12,4 +12,4 @@ if AMBuild.target['platform'] == 'windows':
binary['POSTLINKFLAGS'].append('wsock32.lib')
SM.AutoVersion('extensions/geoip', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -35,4 +35,4 @@ binary.AddSourceFiles('extensions/mysql', [
])
SM.AutoVersion('extensions/mysql', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -24,4 +24,4 @@ binary.AddSourceFiles('extensions/regex', [
])
SM.AutoVersion('extensions/regex', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -49,4 +49,4 @@ for i in SM.sdkInfo:
SM.PostSetupHL2Job(extension, binary, i)
SM.AutoVersion('extensions/sdktools', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -37,4 +37,4 @@ elif AMBuild.target['platform'] == 'linux' or AMBuild.target['platform'] == 'dar
binary.AddSourceFiles('extensions/sqlite', files)
SM.AutoVersion('extensions/sqlite', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -26,4 +26,4 @@ binary.AddSourceFiles('extensions/tf2', [
SM.PostSetupHL2Job(extension, binary, 'ep2v')
SM.AutoVersion('extensions/tf2', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -16,4 +16,4 @@ binary.AddSourceFiles('extensions/topmenus', [
])
SM.AutoVersion('extensions/topmenus', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -15,4 +15,4 @@ binary.AddSourceFiles('extensions/updater', [
])
SM.AutoVersion('extensions/updater', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -18,4 +18,4 @@ binary.AddSourceFiles('loader', [
])
SM.AutoVersion('loader', binary)
binary.SendToJob()
SM.StripBinary(loader, binary)

View File

@ -65,4 +65,4 @@ if AMBuild.target['platform'] == 'windows':
binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env)
binary.SendToJob()
SM.StripBinary(extension, binary)

View File

@ -40,4 +40,4 @@ binary.AddSourceFiles('sourcepawn/jit', [
])
SM.AutoVersion('sourcepawn/jit', binary)
binary.SendToJob()
SM.StripBinary(extension, binary)