|
@@ -1,24 +1,3 @@
|
|
-proj_name = 'tf2dynschema'
|
|
|
|
-proj_srcs = [
|
|
|
|
- 'mmsplugin.cpp',
|
|
|
|
- 'memscan.cpp',
|
|
|
|
-]
|
|
|
|
-proj_c_flags = [
|
|
|
|
- '-Wall',
|
|
|
|
- '-Wno-non-virtual-dtor',
|
|
|
|
- '-Wno-overloaded-virtual',
|
|
|
|
- '-Werror',
|
|
|
|
-]
|
|
|
|
-proj_c_flags_opt = [
|
|
|
|
- '-O3',
|
|
|
|
- '-funroll-loops',
|
|
|
|
- '-pipe',
|
|
|
|
-]
|
|
|
|
-proj_c_flags_dbg = [
|
|
|
|
- '-g',
|
|
|
|
- '-ggdb3',
|
|
|
|
-]
|
|
|
|
-
|
|
|
|
import os, sys
|
|
import os, sys
|
|
|
|
|
|
class SDK(object):
|
|
class SDK(object):
|
|
@@ -59,28 +38,7 @@ Source2 = {
|
|
}
|
|
}
|
|
|
|
|
|
PossibleSDKs = {
|
|
PossibleSDKs = {
|
|
- 'episode1': SDK('HL2SDK', '2.ep1', '1', 'EPISODEONE', WinLinux, 'episode1'),
|
|
|
|
- 'ep2': SDK('HL2SDKOB', '2.ep2', '3', 'ORANGEBOX', WinLinux, 'orangebox'),
|
|
|
|
- 'css': SDK('HL2SDKCSS', '2.css', '6', 'CSS', WinLinuxMac, 'css'),
|
|
|
|
- 'hl2dm': SDK('HL2SDKHL2DM', '2.hl2dm', '7', 'HL2DM', WinLinuxMac, 'hl2dm'),
|
|
|
|
- 'dods': SDK('HL2SDKDODS', '2.dods', '8', 'DODS', WinLinuxMac, 'dods'),
|
|
|
|
- 'sdk2013': SDK('HL2SDK2013', '2.sdk2013', '9', 'SDK2013', WinLinuxMac, 'sdk2013'),
|
|
|
|
'tf2': SDK('HL2SDKTF2', '2.tf2', '11', 'TF2', WinLinuxMac, 'tf2'),
|
|
'tf2': SDK('HL2SDKTF2', '2.tf2', '11', 'TF2', WinLinuxMac, 'tf2'),
|
|
- 'l4d': SDK('HL2SDKL4D', '2.l4d', '12', 'LEFT4DEAD', WinLinuxMac, 'l4d'),
|
|
|
|
- 'nucleardawn': SDK('HL2SDKND', '2.nd', '13', 'NUCLEARDAWN', WinLinuxMac, 'nucleardawn'),
|
|
|
|
- 'l4d2': SDK('HL2SDKL4D2', '2.l4d2', '15', 'LEFT4DEAD2', WinLinuxMac, 'l4d2'),
|
|
|
|
- 'darkm': SDK('HL2SDK-DARKM', '2.darkm', '2', 'DARKMESSIAH', WinOnly, 'darkm'),
|
|
|
|
- 'swarm': SDK('HL2SDK-SWARM', '2.swarm', '16', 'ALIENSWARM', WinOnly, 'swarm'),
|
|
|
|
- 'bgt': SDK('HL2SDK-BGT', '2.bgt', '4', 'BLOODYGOODTIME', WinOnly, 'bgt'),
|
|
|
|
- 'eye': SDK('HL2SDK-EYE', '2.eye', '5', 'EYE', WinOnly, 'eye'),
|
|
|
|
- 'csgo': SDK('HL2SDKCSGO', '2.csgo', '21', 'CSGO', CSGO, 'csgo'),
|
|
|
|
- 'dota': SDK('HL2SDKDOTA', '2.dota', '22', 'DOTA', Source2, 'dota'),
|
|
|
|
- 'portal2': SDK('HL2SDKPORTAL2', '2.portal2', '17', 'PORTAL2', [], 'portal2'),
|
|
|
|
- 'blade': SDK('HL2SDKBLADE', '2.blade', '18', 'BLADE', WinLinux, 'blade'),
|
|
|
|
- 'insurgency': SDK('HL2SDKINSURGENCY', '2.insurgency', '19', 'INSURGENCY', WinLinuxMac, 'insurgency'),
|
|
|
|
- 'doi': SDK('HL2SDKDOI', '2.doi', '20', 'DOI', WinLinuxMac, 'doi'),
|
|
|
|
- 'contagion': SDK('HL2SDKCONTAGION', '2.contagion', '14', 'CONTAGION', WinOnly, 'contagion'),
|
|
|
|
- 'bms': SDK('HL2SDKBMS', '2.bms', '10', 'BMS', WinLinux, 'bms'),
|
|
|
|
}
|
|
}
|
|
|
|
|
|
def ResolveEnvPath(env, folder):
|
|
def ResolveEnvPath(env, folder):
|
|
@@ -156,7 +114,7 @@ class MMSConfig(object):
|
|
sdk_path = os.path.join(builder.options.hl2sdk_root, sdk.folder)
|
|
sdk_path = os.path.join(builder.options.hl2sdk_root, sdk.folder)
|
|
else:
|
|
else:
|
|
sdk_path = ResolveEnvPath(sdk.envvar, sdk.folder)
|
|
sdk_path = ResolveEnvPath(sdk.envvar, sdk.folder)
|
|
- if sdk_path is None:
|
|
|
|
|
|
+ if sdk_path is None or not os.path.isdir(sdk_path):
|
|
if use_all or sdk_name in sdk_list:
|
|
if use_all or sdk_name in sdk_list:
|
|
raise Exception('Could not find a valid path for {0}'.format(sdk.envvar))
|
|
raise Exception('Could not find a valid path for {0}'.format(sdk.envvar))
|
|
continue
|
|
continue
|
|
@@ -276,10 +234,7 @@ class MMSConfig(object):
|
|
'-lc++',
|
|
'-lc++',
|
|
'-mmacosx-version-min=10.9',
|
|
'-mmacosx-version-min=10.9',
|
|
]
|
|
]
|
|
- elif builder.target.platform == 'windows':
|
|
|
|
- cxx.defines += [
|
|
|
|
- 'WINDOWS',
|
|
|
|
- ]
|
|
|
|
|
|
+ # elif builder.target.platform == 'windows': # todo: implement MSVC support
|
|
|
|
|
|
def HL2Compiler(self, context, sdk, arch):
|
|
def HL2Compiler(self, context, sdk, arch):
|
|
compiler = context.cxx.clone()
|
|
compiler = context.cxx.clone()
|
|
@@ -401,7 +356,7 @@ class MMSConfig(object):
|
|
|
|
|
|
dynamic_libs = [] # todo: this whole section is slightly different, but I imagine it is "more correct"
|
|
dynamic_libs = [] # todo: this whole section is slightly different, but I imagine it is "more correct"
|
|
if builder.target.platform == 'linux':
|
|
if builder.target.platform == 'linux':
|
|
- binary.compiler.linkflags[0:0] = ['-lm', '-ldl', '-lelf'] # todo: do we need -ldl?
|
|
|
|
|
|
+ compiler.linkflags[0:0] = ['-lm', '-ldl'] # todo: do we need -ldl?
|
|
if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency', 'doi']:
|
|
if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency', 'doi']:
|
|
dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so']
|
|
dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so']
|
|
elif arch == 'x64' and sdk.name == 'csgo':
|
|
elif arch == 'x64' and sdk.name == 'csgo':
|
|
@@ -447,25 +402,18 @@ MMS.detectProductVersion()
|
|
MMS.detectSDKs()
|
|
MMS.detectSDKs()
|
|
MMS.configure()
|
|
MMS.configure()
|
|
|
|
|
|
-BuildScripts = [] # add sub-modules here
|
|
|
|
|
|
+BuildScripts = [
|
|
|
|
+ 'AMBuilder'
|
|
|
|
+]
|
|
|
|
+
|
|
if getattr(builder.options, 'enable_tests', False):
|
|
if getattr(builder.options, 'enable_tests', False):
|
|
BuildScripts += [] # add tests here
|
|
BuildScripts += [] # add tests here
|
|
|
|
|
|
import os
|
|
import os
|
|
|
|
|
|
-for sdk_name in MMS.sdks:
|
|
|
|
- for arch in MMS.archs:
|
|
|
|
- sdk = MMS.sdks[sdk_name]
|
|
|
|
-
|
|
|
|
- if not arch in sdk.platformSpec[builder.target.platform]:
|
|
|
|
- continue
|
|
|
|
-
|
|
|
|
- name = proj_name + '.' + sdk.ext
|
|
|
|
- binary = MMS.HL2Library(builder, name, sdk, arch)
|
|
|
|
-
|
|
|
|
- binary.sources += proj_srcs
|
|
|
|
-
|
|
|
|
- nodes = builder.Add(binary)
|
|
|
|
- MMS.binaries += [nodes]
|
|
|
|
|
|
+if builder.backend == 'amb2':
|
|
|
|
+ BuildScripts += [
|
|
|
|
+ 'PackageScript',
|
|
|
|
+ ]
|
|
|
|
|
|
builder.Build(BuildScripts, { 'MMS': MMS })
|
|
builder.Build(BuildScripts, { 'MMS': MMS })
|