1.1 --- a/AMBuildScript Sun May 27 11:39:50 2012 -0400
1.2 +++ b/AMBuildScript Sun May 27 16:08:03 2012 -0400
1.3 @@ -27,6 +27,10 @@
1.4 'name': 'BLOODYGOODTIME', 'platform': ['windows']}
1.5 self.possibleSdks['eye'] = {'sdk': 'HL2SDK-EYE', 'ext': '2.eye', 'def': '5',
1.6 'name': 'EYE', 'platform': ['windows']}
1.7 + self.possibleSdks['csgo'] = {'sdk': 'HL2SDKCSGO', 'ext': '2.csgo', 'def': '11',
1.8 + 'name': 'CSGO', 'platform': ['windows', 'linux']}
1.9 + # self.possibleSdks['portal2'] = {'sdk': 'HL2SDK-PORTAL2', 'ext': '2.portal2', 'def': '10',
1.10 + # 'name': 'PORTAL2', 'platform': ['windows']}
1.11
1.12 self.sdkInfo = { }
1.13
1.14 @@ -35,7 +39,7 @@
1.15 self.compiler.DetectAll(AMBuild)
1.16
1.17 #Detect variables
1.18 - envvars = { 'MMSOURCE18': 'mmsource-1.8',
1.19 + envvars = { 'MMSOURCE19': 'mmsource-1.9',
1.20 'HL2SDKOBVALVE': 'hl2sdk-ob-valve',
1.21 'HL2SDKL4D': 'hl2sdk-l4d',
1.22 'HL2SDKL4D2': 'hl2sdk-l4d2',
1.23 @@ -45,6 +49,7 @@
1.24 if AMBuild.target['platform'] != 'darwin':
1.25 envvars['HL2SDK'] = 'hl2sdk'
1.26 envvars['HL2SDKOB'] = 'hl2sdk-ob'
1.27 + envvars['HL2SDKCSGO'] = 'hl2sdk-csgo'
1.28
1.29 #Dark Messiah is Windows-only
1.30 if AMBuild.target['platform'] == 'windows':
1.31 @@ -225,7 +230,7 @@
1.32 self.compiler.AddToListVar('RCINCLUDES', os.path.join(AMBuild.sourceFolder, 'public'))
1.33 self.compiler.AddToListVar('RCINCLUDES',
1.34 os.path.join(AMBuild.outputFolder, 'includes'))
1.35 - self.mmsPath = AMBuild.cache['MMSOURCE18']
1.36 + self.mmsPath = AMBuild.cache['MMSOURCE19']
1.37
1.38 def DefaultCompiler(self):
1.39 return self.compiler.Clone()
1.40 @@ -268,18 +273,22 @@
1.41 else:
1.42 staticLibs = os.path.join(sdkPath, 'lib', 'linux')
1.43 workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
1.44 - if sdk in ['ep2v', 'l4d', 'l4d2']:
1.45 - for i in ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.so', 'libtier0.so']:
1.46 - link = os.path.join(workFolder, i)
1.47 - target = os.path.join(staticLibs, i)
1.48 + if sdk in ['ep2v', 'l4d', 'l4d2', 'csgo']:
1.49 + libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.so', 'libtier0.so']
1.50 + if sdk == 'csgo':
1.51 + libs.append('interfaces_i486.a')
1.52 + for lib in libs:
1.53 + link = os.path.join(workFolder, lib)
1.54 + target = os.path.join(staticLibs, lib)
1.55 try:
1.56 os.lstat(link)
1.57 except:
1.58 job.AddCommand(SymlinkCommand(link, target))
1.59 else:
1.60 - for i in ['tier1_i486.a', 'mathlib_i486.a', 'vstdlib_i486.so', 'tier0_i486.so']:
1.61 - link = os.path.join(workFolder, i)
1.62 - target = os.path.join(staticLibs, i)
1.63 + libs = ['tier1_i486.a', 'mathlib_i486.a', 'vstdlib_i486.so', 'tier0_i486.so']
1.64 + for lib in libs:
1.65 + link = os.path.join(workFolder, lib)
1.66 + target = os.path.join(staticLibs, lib)
1.67 try:
1.68 os.lstat(link)
1.69 except:
1.70 @@ -287,9 +296,12 @@
1.71 elif AMBuild.target['platform'] == 'darwin':
1.72 staticLibs = os.path.join(sdkPath, 'lib', 'mac')
1.73 workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
1.74 - for i in ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.dylib', 'libtier0.dylib']:
1.75 - link = os.path.join(workFolder, i)
1.76 - target = os.path.join(staticLibs, i)
1.77 + libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.dylib', 'libtier0.dylib']
1.78 + if sdk == 'csgo':
1.79 + libs.append('interfaces_i486.a')
1.80 + for lib in libs:
1.81 + link = os.path.join(workFolder, lib)
1.82 + target = os.path.join(staticLibs, lib)
1.83 try:
1.84 os.lstat(link)
1.85 except:
1.86 @@ -306,6 +318,8 @@
1.87 def PostSetupHL2Job(self, job, builder, sdk):
1.88 if AMBuild.target['platform'] in ['linux', 'darwin']:
1.89 builder.AddObjectFiles(['tier1_i486.a', 'mathlib_i486.a'])
1.90 + if sdk == 'csgo':
1.91 + builder.AddObjectFiles(['interfaces_i486.a'])
1.92
1.93 def DefaultHL2Compiler(self, path, sdk, noLink = False, oldMms = '-legacy'):
1.94 compiler = self.DefaultExtCompiler(path)
1.95 @@ -319,6 +333,10 @@
1.96
1.97 info = self.possibleSdks
1.98 compiler['CDEFINES'].extend(['SE_' + info[i]['name'] + '=' + info[i]['def'] for i in info])
1.99 +
1.100 + # We don't build for Portal 2 (yet?, ever?), but using this define in code as
1.101 + # it saves trouble if we ever need to
1.102 + compiler['CDEFINES'].append('SE_PORTAL2=10')
1.103
1.104 paths = [['public'], ['public', 'engine'], ['public', 'mathlib'], ['public', 'vstdlib'],
1.105 ['public', 'tier0'], ['public', 'tier1']]
1.106 @@ -336,8 +354,11 @@
1.107
1.108 compiler['CDEFINES'].append('SOURCE_ENGINE=' + info['def'])
1.109
1.110 - if sdk == 'swarm' and AMBuild.target['platform'] == 'windows':
1.111 - compiler['CDEFINES'].extend(['COMPILER_MSVC', 'COMPILER_MSVC32'])
1.112 + if sdk in ['swarm','csgo']:
1.113 + if AMBuild.target['platform'] == 'windows':
1.114 + compiler['CDEFINES'].extend(['COMPILER_MSVC', 'COMPILER_MSVC32'])
1.115 + else:
1.116 + compiler['CDEFINES'].extend(['COMPILER_GCC', 'POSIX'])
1.117
1.118 if sdk == 'ep1':
1.119 if AMBuild.target['platform'] == 'linux':
1.120 @@ -354,7 +375,7 @@
1.121 if not noLink:
1.122 if AMBuild.target['platform'] == 'linux':
1.123 compiler['POSTLINKFLAGS'][0:0] = ['-lm']
1.124 - if sdk in ['ep2v', 'l4d', 'l4d2']:
1.125 + if sdk in ['ep2v', 'l4d', 'l4d2', 'csgo']:
1.126 compiler['POSTLINKFLAGS'][0:0] = ['libtier0.so']
1.127 compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.so']
1.128 else: