-
Notifications
You must be signed in to change notification settings - Fork 4
/
AMBuilder
39 lines (29 loc) · 1.29 KB
/
AMBuilder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
projectName = 'CSWeaponsAPI'
# smsdk_ext.cpp will be automatically added later
sourceFiles = [
'extension.cpp',
'natives.cpp',
'classes.cpp'
]
# Fix various compiler errors under sample_ext's AMBuildScript
compiler = builder.compiler
compiler.cxxincludes += [os.path.join(Extension.sm_root, 'public', 'CDetour')]
if compiler.like('gcc'):
compiler.defines += ['HAVE_STRING_H']
if (compiler.vendor == 'clang' and compiler.version >= 'clang-10'):
compiler.cxxflags += ['-Wno-expansion-to-defined', '-Wno-implicit-int-float-conversion']
project = Extension.HL2Project(builder, projectName + '.ext')
project.sources += sourceFiles + [
os.path.join(Extension.sm_root, 'public', 'smsdk_ext.cpp'),
os.path.join(Extension.sm_root, 'public', 'CDetour', 'detours.cpp'),
os.path.join(Extension.sm_root, 'public', 'asm', 'asm.c'),
]
# SM 1.10+
libudisFolder = os.path.join(Extension.sm_root, 'public', 'libudis86')
udisSources = ['decode.c', 'itab.c', 'syn-att.c', 'syn-intel.c', 'syn.c', 'udis86.c']
for udisSource in udisSources:
project.sources += [os.path.join(libudisFolder, udisSource)]
Extension.HL2Config(project, projectName + '.ext.' + Extension.sdk.ext, Extension.sdk)
Extension.extensions = builder.Add(project)