Hopefully added clang support, going to need to resync scripts against SM soon.
This commit is contained in:
parent
376bf28f76
commit
93dd6d47aa
@ -46,15 +46,18 @@ class SM:
|
|||||||
|
|
||||||
#Set up defines
|
#Set up defines
|
||||||
cxx = self.compiler.cxx
|
cxx = self.compiler.cxx
|
||||||
|
if isinstance(cxx, Cpp.CompatGCC):
|
||||||
if isinstance(cxx, Cpp.GCC):
|
if isinstance(cxx, Cpp.GCC):
|
||||||
self.vendor = 'gcc'
|
self.vendor = 'gcc'
|
||||||
|
elif isinstance(cxx, Cpp.Clang):
|
||||||
|
self.vendor = 'clang'
|
||||||
self.compiler.AddToListVar('CDEFINES', 'stricmp=strcasecmp')
|
self.compiler.AddToListVar('CDEFINES', 'stricmp=strcasecmp')
|
||||||
self.compiler.AddToListVar('CDEFINES', '_stricmp=strcasecmp')
|
self.compiler.AddToListVar('CDEFINES', '_stricmp=strcasecmp')
|
||||||
self.compiler.AddToListVar('CDEFINES', '_snprintf=snprintf')
|
self.compiler.AddToListVar('CDEFINES', '_snprintf=snprintf')
|
||||||
self.compiler.AddToListVar('CDEFINES', '_vsnprintf=vsnprintf')
|
self.compiler.AddToListVar('CDEFINES', '_vsnprintf=vsnprintf')
|
||||||
self.compiler.AddToListVar('CFLAGS', '-pipe')
|
self.compiler.AddToListVar('CFLAGS', '-pipe')
|
||||||
self.compiler.AddToListVar('CFLAGS', '-fno-strict-aliasing')
|
self.compiler.AddToListVar('CFLAGS', '-fno-strict-aliasing')
|
||||||
if cxx.majorVersion >= 4:
|
if (self.vendor == 'gcc' and cxx.majorVersion >= 4) or self.vendor == 'clang':
|
||||||
self.compiler.AddToListVar('CFLAGS', '-fvisibility=hidden')
|
self.compiler.AddToListVar('CFLAGS', '-fvisibility=hidden')
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-fvisibility-inlines-hidden')
|
self.compiler.AddToListVar('CXXFLAGS', '-fvisibility-inlines-hidden')
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Wall')
|
self.compiler.AddToListVar('CFLAGS', '-Wall')
|
||||||
@ -71,7 +74,14 @@ class SM:
|
|||||||
self.compiler.AddToListVar('CXXFLAGS', '-fno-rtti')
|
self.compiler.AddToListVar('CXXFLAGS', '-fno-rtti')
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-fno-threadsafe-statics')
|
self.compiler.AddToListVar('CXXFLAGS', '-fno-threadsafe-statics')
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-Wno-non-virtual-dtor')
|
self.compiler.AddToListVar('CXXFLAGS', '-Wno-non-virtual-dtor')
|
||||||
|
self.compiler.AddToListVar('CXXFLAGS', '-Wno-overloaded-virtual')
|
||||||
|
if (self.vendor == 'gcc' and cxx.majorVersion >= 4 and cxx.minorVersion >= 7) or \
|
||||||
|
(self.vendor == 'clang' and cxx.majorVersion >= 3):
|
||||||
|
self.compiler.AddToListVar('CXXFLAGS', '-Wno-delete-non-virtual-dtor')
|
||||||
self.compiler.AddToListVar('CDEFINES', 'HAVE_STDINT_H')
|
self.compiler.AddToListVar('CDEFINES', 'HAVE_STDINT_H')
|
||||||
|
self.compiler.AddToListVar('CDEFINES', 'GNUC')
|
||||||
|
if self.vendor == 'gcc':
|
||||||
|
self.compiler.AddToListVar('CFLAGS', '-mfpmath=sse')
|
||||||
elif isinstance(cxx, Cpp.MSVC):
|
elif isinstance(cxx, Cpp.MSVC):
|
||||||
self.vendor = 'msvc'
|
self.vendor = 'msvc'
|
||||||
if AMBuild.options.debug == '1':
|
if AMBuild.options.debug == '1':
|
||||||
@ -107,7 +117,7 @@ class SM:
|
|||||||
#Optimization
|
#Optimization
|
||||||
if AMBuild.options.opt == '1':
|
if AMBuild.options.opt == '1':
|
||||||
self.compiler.AddToListVar('CDEFINES', 'NDEBUG')
|
self.compiler.AddToListVar('CDEFINES', 'NDEBUG')
|
||||||
if self.vendor == 'gcc':
|
if self.vendor == 'gcc' or self.vendor == 'clang':
|
||||||
self.compiler.AddToListVar('CFLAGS', '-O3')
|
self.compiler.AddToListVar('CFLAGS', '-O3')
|
||||||
elif self.vendor == 'msvc':
|
elif self.vendor == 'msvc':
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Ox')
|
self.compiler.AddToListVar('CFLAGS', '/Ox')
|
||||||
@ -118,7 +128,7 @@ class SM:
|
|||||||
if AMBuild.options.debug == '1':
|
if AMBuild.options.debug == '1':
|
||||||
self.compiler.AddToListVar('CDEFINES', 'DEBUG')
|
self.compiler.AddToListVar('CDEFINES', 'DEBUG')
|
||||||
self.compiler.AddToListVar('CDEFINES', '_DEBUG')
|
self.compiler.AddToListVar('CDEFINES', '_DEBUG')
|
||||||
if self.vendor == 'gcc':
|
if self.vendor == 'gcc' or self.vendor == 'clang':
|
||||||
self.compiler.AddToListVar('CFLAGS', '-g3')
|
self.compiler.AddToListVar('CFLAGS', '-g3')
|
||||||
elif self.vendor == 'msvc':
|
elif self.vendor == 'msvc':
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Od')
|
self.compiler.AddToListVar('CFLAGS', '/Od')
|
||||||
@ -127,16 +137,18 @@ class SM:
|
|||||||
#Platform-specifics
|
#Platform-specifics
|
||||||
if AMBuild.target['platform'] == 'linux':
|
if AMBuild.target['platform'] == 'linux':
|
||||||
self.compiler.AddToListVar('CDEFINES', '_LINUX')
|
self.compiler.AddToListVar('CDEFINES', '_LINUX')
|
||||||
|
if self.vendor == 'gcc':
|
||||||
|
self.compiler.AddToListVar('POSTLINKFLAGS', '-static-libgcc')
|
||||||
|
if self.vendor == 'clang':
|
||||||
|
self.compiler.AddToListVar('POSTLINKFLAGS', '-lgcc_eh')
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
elif AMBuild.target['platform'] == 'darwin':
|
||||||
self.compiler.AddToListVar('CFLAGS', ['-isysroot',
|
|
||||||
'/Developer/SDKs/MacOSX10.5.sdk'])
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-mmacosx-version-min=10.5')
|
self.compiler.AddToListVar('POSTLINKFLAGS', '-mmacosx-version-min=10.5')
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', ['-arch', 'i386'])
|
self.compiler.AddToListVar('POSTLINKFLAGS', ['-arch', 'i386'])
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-lstdc++')
|
self.compiler.AddToListVar('POSTLINKFLAGS', '-lstdc++')
|
||||||
|
|
||||||
# For OS X dylib versioning
|
# For OS X dylib versioning
|
||||||
import re
|
import re
|
||||||
productFile = open(os.path.join(AMBuild.sourceFolder, 'buildbot', 'product.version'), 'r')
|
productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r')
|
||||||
productContents = productFile.read()
|
productContents = productFile.read()
|
||||||
productFile.close()
|
productFile.close()
|
||||||
m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents)
|
m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user