#ifndef TARGET_T
#define TARGET_T

#include "tier1/utlstring.h"

enum ETargetKernel
{
	TARGET_KERNEL_LINUX,
	TARGET_KERNEL_WINDOWS,
	TARGET_KERNEL_DARWIN,
	TARGET_KERNEL_IOS,
};

enum ETargetCPU
{
	TARGET_CPU_AMD64,
	TARGET_CPU_I386,
	TARGET_CPU_AARCH64,
};

enum ETargetOptimization
{
	TARGET_DEBUG,
	TARGET_RELEASE_SPEED,
	TARGET_RELEASE_SIZE
};

struct Target_t
{
	ETargetKernel kernel;
	ETargetCPU cpu;
	ETargetOptimization optimization;
	CUtlString GetTriplet();
	static Target_t HostTarget();
	static Target_t DefaultTarget();
};

#endif
