-#ifndef _WIN32
+#define WIN32_LEAN_AND_MEAN
+#ifdef _WIN32
+#include <windows.h>
+#else
#include <sys/utsname.h>
#endif
#include <msp/strings/format.h>
#include <msp/strings/utils.h>
#include "sysutils.h"
+#if defined(_WIN32) && !defined(PROCESSOR_ARCHITECTURE_ARM64)
+#define PROCESSOR_ARCHITECTURE_ARM64 12
+#endif
+
using namespace std;
using namespace Msp;
string get_system_type()
{
#ifdef _WIN32
- return "windows";
+ SYSTEM_INFO sysinfo;
+ GetSystemInfo(&sysinfo);
+ WORD machine = sysinfo.wProcessorArchitecture;
+ if(machine==PROCESSOR_ARCHITECTURE_AMD64 || machine==PROCESSOR_ARCHITECTURE_INTEL)
+ return "x86-windows";
+ else if(machine==PROCESSOR_ARCHITECTURE_ARM || machine==PROCESSOR_ARCHITECTURE_ARM64)
+ return "arm-windows";
#else
utsname un;
if(uname(&un)==0)