AMBuildScript
changeset 3023 354fefa5ff02
parent 2998 94e008ed3db9
child 3060 f1bfc4089ce5
     1.1 --- a/AMBuildScript	Thu May 27 21:04:49 2010 -0500
     1.2 +++ b/AMBuildScript	Thu May 27 21:05:32 2010 -0500
     1.3 @@ -149,6 +149,19 @@
     1.4  				self.compiler.AddToListVar('POSTLINKFLAGS', '-mmacosx-version-min=10.5')
     1.5  				self.compiler.AddToListVar('POSTLINKFLAGS', ['-arch', 'i386'])
     1.6  				self.compiler.AddToListVar('POSTLINKFLAGS', '-lstdc++')
     1.7 +
     1.8 +				# For OS X dylib versioning
     1.9 +				import re
    1.10 +				productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r')
    1.11 +				productContents = productFile.read()
    1.12 +				productFile.close()
    1.13 +				m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents)
    1.14 +				if m == None:
    1.15 +					self.version = '1.0.0'
    1.16 +				else:
    1.17 +					major, minor, release = m.groups()
    1.18 +					self.version = '{0}.{1}.{2}'.format(major, minor, release)
    1.19 +				AMBuild.cache.CacheVariable('version', self.version)
    1.20  			elif AMBuild.target['platform'] == 'windows':
    1.21  				self.compiler.AddToListVar('CDEFINES', 'WIN32')
    1.22  				self.compiler.AddToListVar('CDEFINES', '_WINDOWS')
    1.23 @@ -195,10 +208,14 @@
    1.24  		return compiler
    1.25  
    1.26  	def AutoVersion(self, folder, binary):
    1.27 -		if AMBuild.target['platform'] != 'windows':
    1.28 +		if AMBuild.target['platform'] == 'windows':
    1.29 +			env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']}
    1.30 +			binary.AddResourceFile(os.path.join(folder, 'version.rc' ), env)
    1.31 +		elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder):
    1.32 +			binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0'])
    1.33 +			binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']])
    1.34 +		else:
    1.35  			return
    1.36 -		env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']}
    1.37 -		binary.AddResourceFile(os.path.join(folder, 'version.rc' ), env)
    1.38  
    1.39  	def PreSetupHL2Job(self, job, builder, sdk):
    1.40  		info = self.sdkInfo[sdk]