Manifest updates and compilation fixes for css, tf2, dods, hl2dm (#2268)

* Initial attempt at compiling against tf2_sdk2013

* compilation fix for css

* Switch to AMTL platform arch defines

* Add CBasePlayer forward decl for dods and hl2dm as well

* Update hl2sdk-manifests

* Add dods to CI

* Actually include am-platform.h

---------

Co-authored-by: Kenzzer <kenzzer@users.noreply.github.com>
Co-authored-by: Nicholas Hastings <nshastings@gmail.com>
This commit is contained in:
Benoist 2025-02-20 01:51:38 +01:00 committed by GitHub
parent 3b9c74ce96
commit 2382453d50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 71 additions and 84 deletions

View File

@ -29,7 +29,7 @@ jobs:
runs-on: ${{ matrix.os }}
name: ${{ matrix.os_short }}-${{ matrix.compiler_cc }}
env:
SDKS: '["episode1","css","tf2","l4d2","csgo"]'
SDKS: '["episode1","css","tf2","l4d2","csgo","dods"]'
ARCH: x86,x86_64
DEPENDENCIES_FOLDER: dependencies
DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies

View File

@ -245,6 +245,8 @@ class SMConfig(object):
'-Wno-unused',
'-Wno-switch',
'-Wno-array-bounds',
'-Wno-unknown-pragmas',
'-Wno-dangling-else',
'-fvisibility=hidden',
]
if cxx.target.arch in ['x86', 'x86_64']:

View File

@ -234,9 +234,9 @@ void CHalfLife2::InitLogicalEntData()
return;
}
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
g_EntList = *reinterpret_cast<void **>(addr + offset);
#elif defined PLATFORM_X64
#elif defined KE_ARCH_X64
int32_t varOffset = *reinterpret_cast<int32_t *>(addr + offset);
g_EntList = reinterpret_cast<void *>(addr + offset + sizeof(int32_t) + varOffset);
#endif

View File

@ -79,9 +79,9 @@ static const char *g_pParseEngine = NULL;
#define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS 14
#define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS_READ 15
#if defined PLATFORM_X86
#if defined KE_ARCH_X86
#define PLATFORM_ARCH_SUFFIX ""
#elif defined PLATFORM_X64
#elif defined KE_ARCH_X64
#define PLATFORM_ARCH_SUFFIX "64"
#endif

View File

@ -123,7 +123,7 @@ void *MemoryUtils::ResolveSymbol(void *handle, const char *symbol)
#elif defined PLATFORM_LINUX
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
typedef Elf32_Ehdr ElfHeader;
typedef Elf32_Shdr ElfSHeader;
typedef Elf32_Sym ElfSymbol;
@ -272,7 +272,7 @@ void *MemoryUtils::ResolveSymbol(void *handle, const char *symbol)
#elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
typedef struct mach_header MachHeader;
typedef struct segment_command MachSegment;
typedef struct nlist MachSymbol;
@ -451,7 +451,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#ifdef PLATFORM_WINDOWS
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
const WORD PE_FILE_MACHINE = IMAGE_FILE_MACHINE_I386;
const WORD PE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
#else
@ -501,7 +501,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#elif defined PLATFORM_LINUX
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
typedef Elf32_Ehdr ElfHeader;
typedef Elf32_Phdr ElfPHeader;
const unsigned char ELF_CLASS = ELFCLASS32;
@ -586,7 +586,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
typedef struct mach_header MachHeader;
typedef struct segment_command MachSegment;
const uint32_t MACH_MAGIC = MH_MAGIC;

View File

@ -44,7 +44,7 @@ PseudoAddressManager::PseudoAddressManager() : m_NumEntries(0)
// lower 26 bits. The table consists of memory allocation base addresses.
void *PseudoAddressManager::FromPseudoAddress(uint32_t paddr)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
uint8_t index = paddr >> PSEUDO_OFFSET_BITS;
uint32_t offset = paddr & ((1 << PSEUDO_OFFSET_BITS) - 1);
@ -59,7 +59,7 @@ void *PseudoAddressManager::FromPseudoAddress(uint32_t paddr)
uint32_t PseudoAddressManager::ToPseudoAddress(void *addr)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
uint8_t index = 0;
uint32_t offset = 0;
bool hasEntry = false;
@ -108,13 +108,13 @@ void *PseudoAddressManager::GetAllocationBase(void *ptr)
#elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
typedef vm_region_info_t mach_vm_region_info_t;
typedef vm_region_basic_info_data_t mach_vm_region_basic_info_data_t;
const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO;
const mach_msg_type_number_t MACH_VM_REGION_BASIC_INFO_COUNT = VM_REGION_BASIC_INFO_COUNT;
#define mach_vm_region vm_region
#elif defined PLATFORM_X64
#elif defined KE_ARCH_X64
typedef vm_region_info_64_t mach_vm_region_info_t ;
typedef vm_region_basic_info_data_64_t mach_vm_region_basic_info_data_t;
const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO_64;

View File

@ -86,7 +86,7 @@ IScriptManager *scripts = &g_PluginSys;
IExtensionSys *extsys = &g_Extensions;
ILogger *logger = &g_Logger;
CNativeOwner g_CoreNatives;
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
PseudoAddressManager pseudoAddr;
#endif
@ -122,7 +122,7 @@ static void RegisterProfiler(IProfilingTool *tool)
static void *FromPseudoAddress(uint32_t paddr)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
return pseudoAddr.FromPseudoAddress(paddr);
#else
return nullptr;
@ -131,7 +131,7 @@ static void *FromPseudoAddress(uint32_t paddr)
static uint32_t ToPseudoAddress(void *addr)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
return pseudoAddr.ToPseudoAddress(addr);
#else
return 0;

View File

@ -33,7 +33,7 @@
#define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_
#include "../sm_globals.h"
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
#include "PseudoAddrManager.h"
#endif

View File

@ -863,7 +863,7 @@ enum NumberType
static cell_t LoadFromAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]);
#else
void *addr = pseudoAddr.FromPseudoAddress(params[1]);
@ -895,7 +895,7 @@ static cell_t LoadFromAddress(IPluginContext *pContext, const cell_t *params)
static cell_t StoreToAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]);
#else
void *addr = pseudoAddr.FromPseudoAddress(params[1]);

View File

@ -155,7 +155,7 @@ static cell_t smn_GameConfGetAddress(IPluginContext *pCtx, const cell_t *params)
if (!gc->GetAddress(key, &val))
return 0;
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
return (cell_t)val;
#else
return pseudoAddr.ToPseudoAddress(val);
@ -187,7 +187,7 @@ static cell_t smn_GameConfGetMemSig(IPluginContext *pCtx, const cell_t *params)
return 0;
}
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
return (cell_t)val;
#else
return pseudoAddr.ToPseudoAddress(val);

View File

@ -724,7 +724,7 @@ static cell_t GetEntDataEnt2(IPluginContext *pContext, const cell_t *params)
static cell_t LoadEntityFromHandleAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]);
#else
void *addr = g_SourceMod.FromPseudoAddress(params[1]);
@ -835,7 +835,7 @@ static cell_t SetEntDataEnt2(IPluginContext *pContext, const cell_t *params)
static cell_t StoreEntityToHandleAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]);
#else
void *addr = g_SourceMod.FromPseudoAddress(params[1]);
@ -2772,7 +2772,7 @@ static cell_t GetEntityAddress(IPluginContext *pContext, const cell_t *params)
return pContext->ThrowNativeError("Entity %d (%d) is invalid", g_HL2.ReferenceToIndex(params[1]), params[1]);
}
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
return reinterpret_cast<cell_t>(pEntity);
#else
return g_SourceMod.ToPseudoAddress(pEntity);

View File

@ -213,7 +213,7 @@ bool SourceModBase::InitializeSourceMod(char *error, size_t maxlength, bool late
/* There will always be a path by this point, since it was force-set above. */
m_GotBasePath = true;
#if defined PLATFORM_X86
#if defined KE_ARCH_X86
# define SOURCEPAWN_DLL "sourcepawn.jit.x86"
#else
# define SOURCEPAWN_DLL "sourcepawn.vm"

View File

@ -104,7 +104,7 @@ ICallWrapper *CallMaker::CreateCall(void *address,
NULL, NULL, NULL, NULL);
}
#if defined PLATFORM_X64
#if defined KE_ARCH_X64
return g_CallMaker2.CreateCall(address, &(*protoInfo), retInfo, paramInfo, fnFlags);
#else
return g_CallMaker2.CreateCall(address, &(*protoInfo));
@ -144,7 +144,7 @@ ICallWrapper *CallMaker::CreateVCall(unsigned int vtblIdx,
NULL, NULL, NULL, NULL);
}
#if defined PLATFORM_X64
#if defined KE_ARCH_X64
return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info, retInfo, paramInfo, fnFlags);
#else
return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info);
@ -153,7 +153,7 @@ ICallWrapper *CallMaker::CreateVCall(unsigned int vtblIdx,
ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo *protoInfo)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
CallWrapper *pWrapper = new CallWrapper(protoInfo);
pWrapper->SetCalleeAddr(address);
@ -169,7 +169,7 @@ ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo
ICallWrapper *CallMaker2::CreateVirtualCall(const SourceHook::ProtoInfo *protoInfo,
const SourceHook::MemFuncInfo *info)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
CallWrapper *pWrapper = new CallWrapper(protoInfo);
pWrapper->SetMemFuncInfo(info);
@ -186,7 +186,7 @@ ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo
const PassInfo *retInfo, const PassInfo paramInfo[],
unsigned int fnFlags)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags);
pWrapper->SetCalleeAddr(address);
@ -205,7 +205,7 @@ ICallWrapper *CallMaker2::CreateVirtualCall(const SourceHook::ProtoInfo *protoIn
const PassInfo paramInfo[],
unsigned int fnFlags)
{
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags);
pWrapper->SetMemFuncInfo(info);

View File

@ -18,7 +18,7 @@ struct HashItemDef_Node
class CHashItemDef
{
public:
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
unsigned char padding[36];
#else
unsigned char padding[56];

View File

@ -162,7 +162,7 @@ CRegisters::CRegisters(std::vector<Register_t> registers)
m_xmm7 = CreateRegister(registers, XMM7, 16, 16);
// 64-bit mode only
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
m_xmm8 = CreateRegister(registers, XMM8, 16);
m_xmm9 = CreateRegister(registers, XMM9, 16);
m_xmm10 = CreateRegister(registers, XMM10, 16);

View File

@ -62,7 +62,7 @@ size_t GetStackParamOffset(HookParamsStruct *paramStruct, unsigned int index)
continue;
}
#endif
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
offset += 8;
#else
offset += paramStruct->dg->params[i].size;

View File

@ -32,7 +32,7 @@
#include "vhook.h"
#include "vfunc_call.h"
#include "util.h"
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
#include "sh_asm_x86_64.h"
#else
#include <macro-assembler-x86.h>
@ -51,7 +51,7 @@ using namespace sp;
#define OBJECT_OFFSET (sizeof(void *)*2)
#endif
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
using namespace SourceHook::Asm;
SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* hook)
@ -473,14 +473,14 @@ cell_t GetThisPtr(void *iface, ThisPointerType type)
return -1;
return gamehelpers->EntityToBCompatRef((CBaseEntity *)iface);
}
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
return g_pSM->ToPseudoAddress(iface);
#else
return (cell_t)iface;
#endif
}
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
void *Callback(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else
void *Callback(DHooksCallback *dg, void **argStack)
@ -491,7 +491,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
Handle_t rHndl;
Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg);
#else
size_t argsize = GetStackArgsSize(dg);
@ -519,7 +519,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
dg->plugin_callback->PushCell(rHndl);
}
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0)
{
paramStruct = GetParamStruct(dg, argStack, *argsizep);
@ -664,7 +664,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
}
return ret;
}
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
float Callback_float(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else
float Callback_float(DHooksCallback *dg, void **argStack)
@ -675,7 +675,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
Handle_t rHndl;
Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg);
#else
size_t argsize = GetStackArgsSize(dg);
@ -702,7 +702,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
}
dg->plugin_callback->PushCell(rHndl);
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0)
{
paramStruct = GetParamStruct(dg, argStack, *argsizep);
@ -819,7 +819,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
}
return *(float *)ret;
}
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
SDKVector *Callback_vector(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else
SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
@ -832,7 +832,7 @@ SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
Handle_t rHndl;
Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg);
#else
size_t argsize = GetStackArgsSize(dg);
@ -859,7 +859,7 @@ SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
}
dg->plugin_callback->PushCell(rHndl);
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0)
{
paramStruct = GetParamStruct(dg, argStack, *argsizep);

View File

@ -39,7 +39,7 @@
#include <registers.h>
#include <vector>
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
#include "sh_asm_x86_64.h"
#endif
@ -176,7 +176,7 @@ public:
virtual void DeleteThis()
{
*(void ***)this = this->oldvtable;
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
delete callThunk;
#else
g_pSM->GetScriptingEngine()->FreePageMemory(this->newvtable[2]);
@ -188,12 +188,12 @@ public:
public:
void **newvtable;
void **oldvtable;
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
SourceHook::Asm::x64JitWriter* callThunk;
#endif
};
#if defined( WIN32 ) && !defined( PLATFORM_X64 )
#if defined( WIN32 ) && !defined( KE_ARCH_X64 )
void *Callback(DHooksCallback *dg, void **stack, size_t *argsizep);
float Callback_float(DHooksCallback *dg, void **stack, size_t *argsizep);
SDKVector *Callback_vector(DHooksCallback *dg, void **stack, size_t *argsizep);
@ -278,7 +278,7 @@ public:
HookMethod hookMethod;
};
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* type);
static DHooksCallback *MakeHandler(HookSetup* hook)
{

View File

@ -82,7 +82,7 @@ CTakeDamageInfoHack::CTakeDamageInfoHack( CBaseEntity *pInflictor, CBaseEntity *
#endif
#if SOURCE_ENGINE == SE_TF2
m_eCritType = kCritType_None;
m_eCritType = CRIT_NONE;
#endif
#if SOURCE_ENGINE >= SE_ALIENSWARM

View File

@ -36,6 +36,9 @@
#include "vector.h"
#include "utlvector.h"
#include <shareddefs.h>
#if SOURCE_ENGINE == SE_TF2 || SOURCE_ENGINE == SE_CSS || SOURCE_ENGINE == SE_DODS || SOURCE_ENGINE == SE_HL2DM
class CBasePlayer;
#endif
#include "usercmd.h"
#include "filesystem.h"

View File

@ -73,7 +73,7 @@ bool EntityOutputManager::IsEnabled()
return enabled;
}
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86
#if defined PLATFORM_WINDOWS && defined KE_ARCH_X86
DETOUR_DECL_MEMBER8(FireOutput, void, int, what, int, the, int, hell, int, msvc, void *, variant_t, CBaseEntity *, pActivator, CBaseEntity *, pCaller, float, fDelay)
{
bool fireOutput = g_OutputManager.FireEventDetour((void *)this, pActivator, pCaller, fDelay);

View File

@ -311,7 +311,7 @@ static cell_t FireEntityOutput(IPluginContext *pContext, const cell_t *params)
{
return pContext->ThrowNativeError("\"FireEntityOutput\" not supported by this mod");
}
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86
#if defined PLATFORM_WINDOWS && defined KE_ARCH_X86
int iMaxParam = 8;
//Instead of being one param, MSVC broke variant_t param into 5 params..
PassInfo pass[8];

View File

@ -360,7 +360,7 @@ void TempEntityManager::Initialize()
return;
}
/* Store the head of the TE linked list */
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
m_ListHead = **(void ***) ((unsigned char *) addr + offset);
#else
int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset);

View File

@ -172,7 +172,7 @@ static cell_t PrepSDKCall_SetSignature(IPluginContext *pContext, const cell_t *p
static cell_t PrepSDKCall_SetAddress(IPluginContext *pContext, const cell_t *params)
{
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
s_call_addr = reinterpret_cast<void *>(params[1]);
#else
s_call_addr = g_pSM->FromPseudoAddress(params[1]);

View File

@ -66,7 +66,7 @@ void InitializeValveGlobals()
{
return;
}
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
g_ppGameRules = *reinterpret_cast<void ***>(addr + offset);
#else
int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset);
@ -209,7 +209,7 @@ bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len)
return true;
}
#ifdef PLATFORM_X64
#ifdef KE_ARCH_X64
#define KEY_SUFFIX "64"
#else
#define KEY_SUFFIX ""
@ -291,9 +291,9 @@ void GetIServer()
}
/* Finally we have the interface we were looking for */
#ifdef PLATFORM_X86
#ifdef KE_ARCH_X86
iserver = *reinterpret_cast<IServer **>(reinterpret_cast<unsigned char *>(vfunc) + offset);
#elif defined PLATFORM_X64
#elif defined KE_ARCH_X64
int32_t varOffset = *reinterpret_cast<int32_t *>(reinterpret_cast<unsigned char *>(vfunc) + offset);
iserver = reinterpret_cast<IServer *>(reinterpret_cast<unsigned char *>(vfunc) + offset + sizeof(int32_t) + varOffset);
#endif

@ -1 +1 @@
Subproject commit a57b3095a6fc31a98b13e2d73ebb668dac4f1300
Subproject commit 1134968fc13dcbc1f64dd35f50da00766d50ffa3

View File

@ -37,21 +37,13 @@
* @brief Contains platform-specific macros for abstraction.
*/
#include <am-platform.h>
#if defined WIN32 || defined WIN64
#ifndef PLATFORM_WINDOWS
#define PLATFORM_WINDOWS 1
#endif
#if defined WIN64 || defined _WIN64
#ifndef PLATFORM_X64
# define PLATFORM_X64 1
#endif
#else
#ifndef PLATFORM_X86
# define PLATFORM_X86 1
#endif
#endif // defined WIN64 || defined _WIN64
#if !defined WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
@ -83,16 +75,6 @@
# define PLATFORM_POSIX 1
#endif
#if defined __x86_64__
#ifndef PLATFORM_X64
# define PLATFORM_X64 1
#endif
#else
#ifndef PLATFORM_X86
# define PLATFORM_X86 1
#endif
#endif // defined __x86_64__
#include <errno.h>
#include <unistd.h>
#include <dirent.h>
@ -116,7 +98,7 @@
#define SM_ARRAYSIZE(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
#endif
#if defined PLATFORM_X64
#if defined KE_ARCH_X64
#define PLATFORM_ARCH_FOLDER "x64" PLATFORM_SEP
#ifdef PLATFORM_WINDOWS
#define PLATFORM_FOLDER "win64" PLATFORM_SEP
@ -134,7 +116,7 @@
#elif defined PLATFORM_APPLE
#define PLATFORM_FOLDER "osx32" PLATFORM_SEP
#endif
#endif // defined PLATFORM_X64
#endif // defined KE_ARCH_X64
#endif //_INCLUDE_SOURCEMOD_PLATFORM_H_