#include "target.h" #include "tier1/commandline.h" #include "tier1/utlstring.h" CUtlString Target_t::GetTriplet() { CUtlString triplet = ""; if ( cpu == TARGET_CPU_AMD64 ) triplet.AppendTail("x86_64"); if ( cpu == TARGET_CPU_AARCH64 ) triplet.AppendTail("aarch64"); triplet.AppendTail("-"); if ( kernel == TARGET_KERNEL_WINDOWS ) triplet.AppendTail("pc-windows-gnu"); if ( kernel == TARGET_KERNEL_LINUX ) triplet.AppendTail("unknown-linux-gnu"); if ( kernel == TARGET_KERNEL_DARWIN ) triplet.AppendTail("apple-darwin"); if ( kernel == TARGET_KERNEL_IOS ) triplet.AppendTail("apple-ios"); return triplet; } Target_t Target_t::HostTarget() { ETargetKernel kernel = #if defined(__linux__) TARGET_KERNEL_LINUX #elif defined(__APPLE__) TARGET_KERNEL_DARWIN #endif ; ETargetCPU cpu = TARGET_CPU_AMD64; return { .kernel = kernel, .cpu = cpu, .optimization = TARGET_DEBUG, }; }; Target_t Target_t::DefaultTarget() { CUtlString szDevice = ICommandLine::ParamValue("-device"); CUtlString szOS = ICommandLine::ParamValue("-os"); CUtlString szArch = ICommandLine::ParamValue("-arch"); ETargetKernel kernel = #if defined(__linux__) TARGET_KERNEL_LINUX #elif defined(__APPLE__) TARGET_KERNEL_DARWIN #endif ; ETargetCPU cpu = TARGET_CPU_AMD64; if ( szArch == "x86_64" ) cpu = TARGET_CPU_AMD64; else if ( szArch == "aarch64" ) cpu = TARGET_CPU_AARCH64; if ( szOS == "windows" ) kernel = TARGET_KERNEL_WINDOWS; else if ( szOS == "linux" ) kernel = TARGET_KERNEL_LINUX; else if ( szOS == "macos" ) kernel = TARGET_KERNEL_DARWIN; else if ( szOS == "ios" ) kernel = TARGET_KERNEL_IOS; else if ( szOS != 0 ) V_printf("Unknown OS: %s\n", szOS.GetString()); return { .kernel = kernel, .cpu = cpu, .optimization = TARGET_DEBUG, }; }