diff --git a/AMBuildScript b/AMBuildScript index 95906b06..c71ed891 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -9,19 +9,18 @@ class SM: #Build SDK info self.sdkInfo = { } - self.sdkInfo['ep1'] = {'sdk': 'HL2SDK', 'ext': '1.ep1', 'def': '1', - 'name': 'EPISODEONE'} - self.sdkInfo['ep2'] = {'sdk': 'HL2SDKOB', 'ext': '2.ep2', 'def': '3', - 'name': 'ORANGEBOX'} - self.sdkInfo['ep2v'] = {'sdk': 'HL2SDKOBVALVE', 'ext': '2.ep2v', 'def': '4', - 'name': 'ORANGEBOXVALVE'} - self.sdkInfo['l4d'] = {'sdk': 'HL2SDKL4D', 'ext': '2.l4d', 'def': '5', - 'name': 'LEFT4DEAD'} - self.sdkInfo['l4d2'] = {'sdk': 'HL2SDKL4D2', 'ext': '2.l4d2', 'def': '6', - 'name': 'LEFT4DEAD2'} - if AMBuild.target['platform'] == 'windows': - self.sdkInfo['darkm'] = {'sdk': 'HL2SDK-DARKM', 'ext': '2.darkm', 'def': '2', - 'name': 'DARKMESSIAH'} + self.sdkInfo['ep1'] = {'sdk': 'HL2SDK', 'ext': '1.ep1', 'def': '1', + 'name': 'EPISODEONE', 'platform': ['windows', 'linux']} + self.sdkInfo['ep2'] = {'sdk': 'HL2SDKOB', 'ext': '2.ep2', 'def': '3', + 'name': 'ORANGEBOX', 'platform': ['windows', 'linux']} + self.sdkInfo['ep2v'] = {'sdk': 'HL2SDKOBVALVE', 'ext': '2.ep2v', 'def': '4', + 'name': 'ORANGEBOXVALVE', 'platform': ['windows', 'linux', 'darwin']} + self.sdkInfo['l4d'] = {'sdk': 'HL2SDKL4D', 'ext': '2.l4d', 'def': '5', + 'name': 'LEFT4DEAD', 'platform': ['windows', 'linux']} + self.sdkInfo['l4d2'] = {'sdk': 'HL2SDKL4D2', 'ext': '2.l4d2', 'def': '6', + 'name': 'LEFT4DEAD2', 'platform': ['windows', 'linux']} + self.sdkInfo['darkm'] = {'sdk': 'HL2SDK-DARKM', 'ext': '2.darkm', 'def': '2', + 'name': 'DARKMESSIAH', 'platform': ['windows']} if AMBuild.mode == 'config': #Detect compilers @@ -29,14 +28,16 @@ class SM: #Detect variables envvars = { 'MMSOURCE18': 'mmsource-1.8', - 'HL2SDK': 'hl2sdk', - 'HL2SDKOB': 'hl2sdk-ob', - 'HL2SDKL4D': 'hl2sdk-l4d', 'HL2SDKOBVALVE': 'hl2sdk-ob-valve', - 'HL2SDKL4D2': 'hl2sdk-l4d2', 'MYSQL5': 'mysql-5.0' } + if AMBuild.target['platform'] != 'darwin': + envvars['HL2SDK'] = 'hl2sdk' + envvars['HL2SDKOB'] = 'hl2sdk-ob' + envvars['HL2SDKL4D'] = 'hl2sdk-l4d' + envvars['HL2SDKL4D2'] = 'hl2sdk-l4d2' + #Dark Messiah is Windows-only if AMBuild.target['platform'] == 'windows': envvars['HL2SDK-DARKM'] = 'hl2sdk-darkm' @@ -243,7 +244,6 @@ class SM: info = self.sdkInfo compiler['CDEFINES'].extend(['SE_' + info[i]['name'] + '=' + info[i]['def'] for i in info]) - compiler['CDEFINES'].append('SE_DARKMESSIAH=2') paths = [['public'], ['public', 'engine'], ['public', 'mathlib'], ['public', 'vstdlib'], ['public', 'tier0'], ['public', 'tier1']] diff --git a/core/AMBuilder b/core/AMBuilder index c66df50e..fdc3e386 100644 --- a/core/AMBuilder +++ b/core/AMBuilder @@ -3,6 +3,9 @@ import os for i in SM.sdkInfo: sdk = SM.sdkInfo[i] + if AMBuild.target['platform'] not in sdk['platform']: + continue + name = 'sourcemod.' + sdk['ext'] compiler = SM.DefaultHL2Compiler('core', i) diff --git a/extensions/bintools/AMBuilder b/extensions/bintools/AMBuilder index 611006c2..b6e904ba 100644 --- a/extensions/bintools/AMBuilder +++ b/extensions/bintools/AMBuilder @@ -3,6 +3,9 @@ import os for i in SM.sdkInfo: sdk = SM.sdkInfo[i] + if AMBuild.target['platform'] not in sdk['platform']: + continue + name = 'bintools.ext.' + sdk['ext'] compiler = SM.DefaultHL2Compiler('extensions/bintools', i, True, '') diff --git a/extensions/cstrike/AMBuilder b/extensions/cstrike/AMBuilder index 89c33d19..fb6db61b 100644 --- a/extensions/cstrike/AMBuilder +++ b/extensions/cstrike/AMBuilder @@ -2,20 +2,22 @@ import os sdk = SM.sdkInfo['ep1'] -compiler = SM.DefaultHL2Compiler('extensions/cstrike', 'ep1') -name = 'game.cstrike.ext.' + sdk['ext'] -extension = AMBuild.AddJob(name) -binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) -SM.PreSetupHL2Job(extension, binary, 'ep1') -binary.AddSourceFiles('extensions/cstrike', [ - 'extension.cpp', - 'natives.cpp', - 'RegNatives.cpp', - 'timeleft.cpp', - 'sdk/smsdk_ext.cpp' - ]) -SM.PostSetupHL2Job(extension, binary, 'ep1') -SM.AutoVersion('extensions/cstrike', binary) -binary.SendToJob() +if AMBuild.target['platform'] in sdk['platform']: + compiler = SM.DefaultHL2Compiler('extensions/cstrike', 'ep1') + + name = 'game.cstrike.ext.' + sdk['ext'] + extension = AMBuild.AddJob(name) + binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) + SM.PreSetupHL2Job(extension, binary, 'ep1') + binary.AddSourceFiles('extensions/cstrike', [ + 'extension.cpp', + 'natives.cpp', + 'RegNatives.cpp', + 'timeleft.cpp', + 'sdk/smsdk_ext.cpp' + ]) + SM.PostSetupHL2Job(extension, binary, 'ep1') + SM.AutoVersion('extensions/cstrike', binary) + binary.SendToJob() diff --git a/extensions/sdktools/AMBuilder b/extensions/sdktools/AMBuilder index dfda28df..e2c520b6 100644 --- a/extensions/sdktools/AMBuilder +++ b/extensions/sdktools/AMBuilder @@ -2,6 +2,10 @@ import os for i in SM.sdkInfo: + sdk = SM.sdkInfo[i] + if AMBuild.target['platform'] not in sdk['platform']: + continue + compiler = SM.DefaultHL2Compiler('extensions/sdktools', i) compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit')) compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86')) @@ -9,7 +13,6 @@ for i in SM.sdkInfo: if i != 'ep1': compiler['CDEFINES'].append('HOOKING_ENABLED') - sdk = SM.sdkInfo[i] name = 'sdktools.ext.' + sdk['ext'] extension = AMBuild.AddJob(name) binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)