]> git.tdb.fi Git - builder.git/blob - source/sysutils.cpp
8fa3d4894924333581810cb9d19a015c26573057
[builder.git] / source / sysutils.cpp
1 #define WIN32_LEAN_AND_MEAN
2 #ifdef _WIN32
3 #include <windows.h>
4 #else
5 #include <sys/utsname.h>
6 #endif
7 #include <msp/strings/format.h>
8 #include <msp/strings/utils.h>
9 #include "sysutils.h"
10
11 #if defined(_WIN32) && !defined(PROCESSOR_ARCHITECTURE_ARM64)
12 #define PROCESSOR_ARCHITECTURE_ARM64 12
13 #endif
14
15 using namespace std;
16 using namespace Msp;
17
18 string get_system_type()
19 {
20 #ifdef _WIN32
21         SYSTEM_INFO sysinfo;
22         GetSystemInfo(&sysinfo);
23         WORD machine = sysinfo.wProcessorArchitecture;
24         if(machine==PROCESSOR_ARCHITECTURE_AMD64 || machine==PROCESSOR_ARCHITECTURE_INTEL)
25                 return "x86-windows";
26         else if(machine==PROCESSOR_ARCHITECTURE_ARM || machine==PROCESSOR_ARCHITECTURE_ARM64)
27                 return "arm-windows";
28 #else
29         utsname un;
30         if(uname(&un)==0)
31                 return tolower(format("%s-%s", un.sysname, un.machine));
32 #endif
33
34         return string();
35 }