* Add safetyhook, remove libudis86 Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com> * Add modified CDetour Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com> * Add CDetour [Safetyhook] to build script * Re-enable loader/core/corelogic, and fix new C++20 error * Reenable all extensions (except dhooks) * Make cstrike compile against new CDetour * Remove unused variable in sdktools output? * Make sdktools compile against new cdetour * Downgrade to C++17 * remove auto * fix compilation on linux * Re-enable dhooks * Re-authorise old compilers * Fix invalid downgrade of std::optional * readd libudis86 for dhooks only --------- Co-authored-by: Kenzzer <kenzzer@users.noreply.github.com> Co-authored-by: bottiger1 <55270538+bottiger1@users.noreply.github.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
 | 
						|
import os
 | 
						|
 | 
						|
for cxx in builder.targets:
 | 
						|
  binary = SM.ExtLibrary(builder, cxx, 'dhooks.ext')
 | 
						|
 | 
						|
  # Only x86 on Linux and Windows is supported.
 | 
						|
  if binary.compiler.target.platform == 'mac' or binary.compiler.target.arch != 'x86':
 | 
						|
    continue
 | 
						|
 | 
						|
  binary.compiler.defines += [
 | 
						|
    'META_NO_HL2SDK',
 | 
						|
    'HAVE_STRING_H',
 | 
						|
  ]
 | 
						|
 | 
						|
  if binary.compiler.like('gcc'):
 | 
						|
    binary.compiler.cflags += ['-Wno-invalid-offsetof']
 | 
						|
 | 
						|
  binary.compiler.cxxincludes += [
 | 
						|
    os.path.join(SM.mms_root, 'core'),
 | 
						|
    os.path.join(SM.mms_root, 'core', 'sourcehook'),
 | 
						|
    os.path.join(builder.sourcePath, 'extensions', 'dhooks'),
 | 
						|
    os.path.join(builder.sourcePath, 'public', 'jit'),
 | 
						|
    os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
 | 
						|
    os.path.join(builder.sourcePath, 'sourcepawn', 'include'),
 | 
						|
    os.path.join(builder.sourcePath, 'sourcepawn', 'vm'),
 | 
						|
    os.path.join(builder.sourcePath, 'sourcepawn', 'vm', 'x86'),
 | 
						|
    os.path.join(builder.sourcePath, 'extensions', 'dhooks', 'DynamicHooks'),
 | 
						|
  ]
 | 
						|
 | 
						|
  binary.compiler.includes += [
 | 
						|
    os.path.join(builder.sourcePath, 'extensions', 'dhooks')
 | 
						|
  ]
 | 
						|
 | 
						|
  binary.sources += [
 | 
						|
    'extension.cpp',
 | 
						|
    'listeners.cpp',
 | 
						|
    'natives.cpp',
 | 
						|
    'signatures.cpp',
 | 
						|
    'vhook.cpp',
 | 
						|
    'util.cpp',
 | 
						|
    'dynhooks_sourcepawn.cpp',
 | 
						|
    '../../public/smsdk_ext.cpp',
 | 
						|
    'asm/asm.c',
 | 
						|
    'libudis86/decode.c',
 | 
						|
    'libudis86/itab.c',
 | 
						|
    'libudis86/syn-att.c',
 | 
						|
    'libudis86/syn-intel.c',
 | 
						|
    'libudis86/syn.c',
 | 
						|
    'libudis86/udis86.c',
 | 
						|
    '../../sourcepawn/vm/x86/assembler-x86.cpp',
 | 
						|
  ]
 | 
						|
 | 
						|
  # DynamicHooks
 | 
						|
  binary.sources += [
 | 
						|
    os.path.join('DynamicHooks', 'hook.cpp'),
 | 
						|
    os.path.join('DynamicHooks', 'manager.cpp'),
 | 
						|
    os.path.join('DynamicHooks', 'registers.cpp'),
 | 
						|
    os.path.join('DynamicHooks', 'conventions', 'x86MsCdecl.cpp'),
 | 
						|
    os.path.join('DynamicHooks', 'conventions', 'x86MsStdcall.cpp'),
 | 
						|
    os.path.join('DynamicHooks', 'conventions', 'x86MsFastcall.cpp'),
 | 
						|
  ]
 | 
						|
 | 
						|
  if binary.compiler.target.platform == 'windows':
 | 
						|
    binary.sources += [os.path.join('DynamicHooks', 'conventions', 'x86MsThiscall.cpp')]
 | 
						|
  else:
 | 
						|
    binary.sources += [os.path.join('DynamicHooks', 'conventions', 'x86GccThiscall.cpp')]
 | 
						|
  
 | 
						|
  SM.extensions += [builder.Add(binary)]
 |