build: AMBuild 2.2 uplift (#32)

This commit is contained in:
David Anderson
2020-08-22 16:17:05 -07:00
committed by GitHub
parent 6b130d1a24
commit fd9a281f17
3 changed files with 46 additions and 33 deletions
+20 -12
View File
@@ -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 })