# vim: set ts=2 sw=2 tw=99 noet ft=python: 
import os

for i in SM.sdkInfo:
	sdk = SM.sdkInfo[i]
	if AMBuild.target['platform'] not in sdk['platform']:
		continue

	compiler = SM.DefaultHL2Compiler('extensions/sdktools', i)
	compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit'))
	compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86'))

	if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
		compiler['CXXFLAGS'].append('-Wno-invalid-offsetof')

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

	name = 'sdktools.ext.' + sdk['ext']
	extension = AMBuild.AddJob(name)
	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
	SM.PreSetupHL2Job(extension, binary, i)
	binary.AddSourceFiles('extensions/sdktools', [
		'extension.cpp',
		'inputnatives.cpp',
		'output.cpp',
		'outputnatives.cpp',
		'tempents.cpp',
		'tenatives.cpp',
		'teamnatives.cpp',
		'trnatives.cpp',
		'vcaller.cpp',
		'vcallbuilder.cpp',
		'vdecoder.cpp',
		'vglobals.cpp',
		'vhelpers.cpp',
		'vnatives.cpp',
		'voice.cpp',
		'vsound.cpp',
		'clientnatives.cpp',
		'hooks.cpp',
		'gamerulesnatives.cpp',
		'vstringtable.cpp',
		'CDetour/detours.cpp',
		'sdk/smsdk_ext.cpp',
		'asm/asm.c'
		])
	SM.PostSetupHL2Job(extension, binary, i)
	SM.AutoVersion('extensions/sdktools', binary)
	SM.ExtractDebugInfo(extension, binary)
	binary.SendToJob()