AMBuildScript
changeset 3515 c14c14e06cc1
parent 3503 08b1578a8363
child 3523 eeb198aec274
     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: