build: AMBuild 2.2 uplift (#32)
This commit is contained in:
+20
-12
@@ -50,6 +50,12 @@ class SteamWorksConfig(object):
|
||||
self.steamworks_root = None
|
||||
self.extensions = []
|
||||
|
||||
# Note: only one architecture supported per build right now.
|
||||
if builder.options.target:
|
||||
builder.cxx = builder.DetectCxx(target_arch = builder.options.target)
|
||||
else:
|
||||
builder.cxx = builder.DetectCxx()
|
||||
|
||||
@property
|
||||
def tag(self):
|
||||
if builder.options.debug == '1':
|
||||
@@ -63,7 +69,7 @@ class SteamWorksConfig(object):
|
||||
|
||||
for sdk_name in PossibleSDKs:
|
||||
sdk = PossibleSDKs[sdk_name]
|
||||
if builder.target_platform in sdk.platform:
|
||||
if builder.cxx.target.platform in sdk.platform:
|
||||
if builder.options.hl2sdk_root:
|
||||
sdk_path = os.path.join(builder.options.hl2sdk_root, sdk.folder)
|
||||
else:
|
||||
@@ -124,8 +130,10 @@ class SteamWorksConfig(object):
|
||||
def configure(self):
|
||||
builder.AddConfigureFile('pushbuild.txt')
|
||||
|
||||
cxx = builder.DetectCompilers()
|
||||
# Only one compiler to configure.
|
||||
self.configure_cxx(builder.cxx)
|
||||
|
||||
def configure_cxx(self, cxx):
|
||||
if cxx.like('gcc'):
|
||||
cxx.defines += [
|
||||
'stricmp=strcasecmp',
|
||||
@@ -165,7 +173,7 @@ class SteamWorksConfig(object):
|
||||
cxx.cflags += ['-Wno-unused-result']
|
||||
if have_clang:
|
||||
cxx.cxxflags += ['-Wno-implicit-exception-spec-mismatch']
|
||||
if (builder.target_platform == 'mac' and cxx.version >= '5.1') or cxx.version >= '3.4':
|
||||
if (cxx.target.platform == 'mac' and cxx.version >= '5.1') or cxx.version >= '3.4':
|
||||
cxx.cxxflags += ['-Wno-deprecated-register']
|
||||
else:
|
||||
cxx.cxxflags += ['-Wno-deprecated']
|
||||
@@ -241,13 +249,13 @@ class SteamWorksConfig(object):
|
||||
cxx.cflags += ['/Oy-']
|
||||
|
||||
# Platform-specifics
|
||||
if builder.target_platform == 'linux':
|
||||
if cxx.target.platform == 'linux':
|
||||
cxx.defines += ['_LINUX', 'POSIX']
|
||||
if cxx.vendor == 'gcc':
|
||||
cxx.linkflags += ['-static-libgcc']
|
||||
elif cxx.vendor == 'clang':
|
||||
cxx.linkflags += ['-lgcc_eh']
|
||||
elif builder.target_platform == 'mac':
|
||||
elif cxx.target.platform == 'mac':
|
||||
cxx.defines += ['OSX', '_OSX', 'POSIX']
|
||||
cxx.cflags += ['-mmacosx-version-min=10.5']
|
||||
cxx.linkflags += [
|
||||
@@ -257,7 +265,7 @@ class SteamWorksConfig(object):
|
||||
'-stdlib=libc++'
|
||||
]
|
||||
cxx.cxxflags += ['-stdlib=libstdc++']
|
||||
elif builder.target_platform == 'windows':
|
||||
elif cxx.target.platform == 'windows':
|
||||
cxx.defines += ['WIN32', '_WINDOWS']
|
||||
|
||||
def ConfigureForExtension(self, context, compiler):
|
||||
@@ -299,12 +307,12 @@ class SteamWorksConfig(object):
|
||||
return self.ConfigureForHL2(binary, sdk)
|
||||
|
||||
def HL2Project(self, context, name):
|
||||
project = context.compiler.LibraryProject(name)
|
||||
self.ConfigureForExtension(context, project.compiler)
|
||||
project = context.LibraryProject(name)
|
||||
self.ConfigureForExtension(context, context.cxx)
|
||||
return project
|
||||
|
||||
def HL2Config(self, project, name, sdk):
|
||||
binary = project.Configure(name, '{0} - {1}'.format(self.tag, sdk.name))
|
||||
def HL2Config(self, project, cxx, name, sdk):
|
||||
binary = project.Configure(cxx, name, '{0} - {1}'.format(self.tag, sdk.name))
|
||||
return self.ConfigureForHL2(binary, sdk)
|
||||
|
||||
SteamWorks = SteamWorksConfig()
|
||||
@@ -313,5 +321,5 @@ SteamWorks.configure()
|
||||
|
||||
BuildScripts = ['Extension/AMBuilder']
|
||||
|
||||
builder.RunBuildScripts(BuildScripts, { 'SteamWorks': SteamWorks })
|
||||
builder.RunScript('buildbot/PackageScript', { 'SteamWorks': SteamWorks })
|
||||
builder.Build(BuildScripts, { 'SteamWorks': SteamWorks })
|
||||
builder.Build('buildbot/PackageScript', { 'SteamWorks': SteamWorks })
|
||||
|
||||
Reference in New Issue
Block a user