Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "hl2sdk-manifests"]
path = hl2sdk-manifests
url = https://github.com/alliedmodders/hl2sdk-manifests.git
662 changes: 233 additions & 429 deletions AMBuildScript

Large diffs are not rendered by default.

7 changes: 0 additions & 7 deletions build.bat

This file was deleted.

25 changes: 19 additions & 6 deletions configure.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
# vim: set ts=2 sw=2 tw=99 noet:
# vim: set sts=2 ts=8 sw=2 tw=99 et:
import sys
import ambuild.runner as runner
from ambuild2 import run

run = runner.Runner()
run.options.add_option('--enable-debug', action='store_const', const='1', dest='debug',
# Simple extensions do not need to modify this file.

parser = run.BuildParser(sourcePath = sys.path[0], api='2.2')

parser.options.add_argument('--hl2sdk-root', type=str, dest='hl2sdk_root', default=None,
help='Root search folder for HL2SDKs')
parser.options.add_argument('--sm-path', type=str, dest='sm_path', default=None,
help='Path to SourceMod')
parser.options.add_argument('--mms-path', type=str, dest='mms_path', default=None,
help='Path to Metamod:Source')
parser.options.add_argument('--enable-debug', action='store_const', const='1', dest='debug',
help='Enable debugging symbols')
run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt',
parser.options.add_argument('--enable-optimize', action='store_const', const='1', dest='opt',
help='Enable optimization')
run.Configure(sys.path[0])
parser.options.add_argument('--enable-auto-versioning', action='store_false', dest='disable_auto_versioning',
default=True, help='Enables the auto versioning script')
parser.options.add_argument('--targets', type=str, dest='targets', default=None,
help="Override the target architecture (use commas to separate multiple targets).")
parser.Configure()
45 changes: 16 additions & 29 deletions extension/AMBuilder
Original file line number Diff line number Diff line change
@@ -1,34 +1,21 @@
# vim: set ts=2 sw=2 tw=99 noet ft=python:
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os

for i in SM.sdkInfo:
sdk = SM.sdkInfo[i]
if AMBuild.target['platform'] not in sdk['platform']:
continue
project = builder.LibraryProject('tf2items.ext')
project.sources = [
'extension.cpp',
os.path.join(Extension.sm_root, 'public', 'smsdk_ext.cpp')
]

compiler = SM.DefaultHL2Compiler('extension', i)

compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'extension'))
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'extension', 'sdk'))

compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache['SOURCEMOD14'], 'public'))
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache['SOURCEMOD14'], 'public', 'sourcepawn'))
sdk = Extension.sdks['tf2']

if compiler.cc.name == 'gcc':
compiler['CFLAGS'].append('-Wno-parentheses')
for cxx in Extension.targets:
if not cxx.target.arch in sdk['platforms'][cxx.target.platform]:
continue
oldcode = sdk['extension']
sdk['extension'] = '2.ep2v'
binary = Extension.ConfigureExtensionSDK(project, cxx, builder, sdk)
sdk['extension'] = oldcode
binary.compiler.cxxincludes += [ os.path.join(builder.currentSourcePath, 'sdk') ]

if i != 'ep1':
compiler['CDEFINES'].append('HOOKING_ENABLED')

name = 'tf2items.ext.' + sdk['ext']
extension = AMBuild.AddJob(name)
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
SM.PreSetupHL2Job(extension, binary, i)

binary.AddSourceFiles(os.path.join('extension', 'sdk'), ['smsdk_ext.cpp'])
binary.AddSourceFiles('extension', ['extension.cpp'])

SM.PostSetupHL2Job(extension, binary, i)
SM.AutoVersion('extension', binary)
SM.ExtractDebugInfo(extension, binary)
binary.SendToJob()
Extension.extension = builder.Add(project)
Loading