diff --git a/AMBuildScript b/AMBuildScript index ff727b8a..77d63362 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -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) diff --git a/core/AMBuilder b/core/AMBuilder index e312017f..14da08f6 100644 --- a/core/AMBuilder +++ b/core/AMBuilder @@ -75,4 +75,4 @@ for i in SM.sdkInfo: SM.PostSetupHL2Job(extension, binary, i) SM.AutoVersion('core', binary) binary.SendToJob() - + SM.StripBinary(extension, binary) diff --git a/core/logic/AMBuilder b/core/logic/AMBuilder index e3da04fb..e19cf6ae 100644 --- a/core/logic/AMBuilder +++ b/core/logic/AMBuilder @@ -56,4 +56,5 @@ else: binary.AddSourceFiles('core/logic', files) SM.AutoVersion('core/logic', binary) binary.SendToJob() +SM.StripBinary(extension, binary) diff --git a/extensions/bintools/AMBuilder b/extensions/bintools/AMBuilder index 2b48dbac..33d70e6b 100644 --- a/extensions/bintools/AMBuilder +++ b/extensions/bintools/AMBuilder @@ -20,5 +20,4 @@ binary.AddSourceFiles('extensions/bintools', [ ]) SM.AutoVersion('extensions/bintools', binary) binary.SendToJob() - - +SM.StripBinary(extension, binary) diff --git a/extensions/clientprefs/AMBuilder b/extensions/clientprefs/AMBuilder index 09d26f0d..12921f45 100644 --- a/extensions/clientprefs/AMBuilder +++ b/extensions/clientprefs/AMBuilder @@ -16,4 +16,4 @@ binary.AddSourceFiles('extensions/clientprefs', [ ]) SM.AutoVersion('extensions/clientprefs', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/cstrike/AMBuilder b/extensions/cstrike/AMBuilder index 6ff16fb3..3c4799b0 100644 --- a/extensions/cstrike/AMBuilder +++ b/extensions/cstrike/AMBuilder @@ -22,4 +22,5 @@ if AMBuild.target['platform'] in sdk['platform']: ]) SM.PostSetupHL2Job(extension, binary, 'ep2v') SM.AutoVersion('extensions/cstrike', binary) - binary.SendToJob() \ No newline at end of file + binary.SendToJob() + SM.StripBinary(extension, binary) diff --git a/extensions/curl/AMBuilder b/extensions/curl/AMBuilder index f4d67148..22fd7385 100644 --- a/extensions/curl/AMBuilder +++ b/extensions/curl/AMBuilder @@ -84,4 +84,4 @@ elif AMBuild.target['platform'] == 'windows': SM.AutoVersion('extensions/curl', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/geoip/AMBuilder b/extensions/geoip/AMBuilder index e9df90d8..ccd5656f 100644 --- a/extensions/geoip/AMBuilder +++ b/extensions/geoip/AMBuilder @@ -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) diff --git a/extensions/mysql/AMBuilder b/extensions/mysql/AMBuilder index 7342bf59..746901a2 100644 --- a/extensions/mysql/AMBuilder +++ b/extensions/mysql/AMBuilder @@ -35,4 +35,4 @@ binary.AddSourceFiles('extensions/mysql', [ ]) SM.AutoVersion('extensions/mysql', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/regex/AMBuilder b/extensions/regex/AMBuilder index 76b37573..4f16418e 100644 --- a/extensions/regex/AMBuilder +++ b/extensions/regex/AMBuilder @@ -24,4 +24,4 @@ binary.AddSourceFiles('extensions/regex', [ ]) SM.AutoVersion('extensions/regex', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/sdktools/AMBuilder b/extensions/sdktools/AMBuilder index cf83b474..62a875ee 100644 --- a/extensions/sdktools/AMBuilder +++ b/extensions/sdktools/AMBuilder @@ -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) diff --git a/extensions/sqlite/AMBuilder b/extensions/sqlite/AMBuilder index cb75742f..f70a2588 100644 --- a/extensions/sqlite/AMBuilder +++ b/extensions/sqlite/AMBuilder @@ -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) diff --git a/extensions/tf2/AMBuilder b/extensions/tf2/AMBuilder index 40d1891a..312a76b4 100644 --- a/extensions/tf2/AMBuilder +++ b/extensions/tf2/AMBuilder @@ -26,4 +26,4 @@ binary.AddSourceFiles('extensions/tf2', [ SM.PostSetupHL2Job(extension, binary, 'ep2v') SM.AutoVersion('extensions/tf2', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/topmenus/AMBuilder b/extensions/topmenus/AMBuilder index ce393598..02bc4691 100644 --- a/extensions/topmenus/AMBuilder +++ b/extensions/topmenus/AMBuilder @@ -16,4 +16,4 @@ binary.AddSourceFiles('extensions/topmenus', [ ]) SM.AutoVersion('extensions/topmenus', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/extensions/updater/AMBuilder b/extensions/updater/AMBuilder index 3e1f9711..c383b215 100644 --- a/extensions/updater/AMBuilder +++ b/extensions/updater/AMBuilder @@ -15,4 +15,4 @@ binary.AddSourceFiles('extensions/updater', [ ]) SM.AutoVersion('extensions/updater', binary) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/loader/AMBuilder b/loader/AMBuilder index 0f0991b0..d4a2e7b5 100644 --- a/loader/AMBuilder +++ b/loader/AMBuilder @@ -18,4 +18,4 @@ binary.AddSourceFiles('loader', [ ]) SM.AutoVersion('loader', binary) binary.SendToJob() - +SM.StripBinary(loader, binary) diff --git a/sourcepawn/compiler/AMBuilder b/sourcepawn/compiler/AMBuilder index f7982203..bcbdf75c 100644 --- a/sourcepawn/compiler/AMBuilder +++ b/sourcepawn/compiler/AMBuilder @@ -65,4 +65,4 @@ if AMBuild.target['platform'] == 'windows': binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env) binary.SendToJob() - +SM.StripBinary(extension, binary) diff --git a/sourcepawn/jit/AMBuilder b/sourcepawn/jit/AMBuilder index e3ce4282..1b315d96 100644 --- a/sourcepawn/jit/AMBuilder +++ b/sourcepawn/jit/AMBuilder @@ -40,4 +40,4 @@ binary.AddSourceFiles('sourcepawn/jit', [ ]) SM.AutoVersion('sourcepawn/jit', binary) binary.SendToJob() - +SM.StripBinary(extension, binary)