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]