dl
dl_platform.h
浏览该文件的文档.
1
12#pragma once
13
14#define DL_PLATFORM_ERROR 0
15#define DL_PLATFORM_WIN32 1
16#define DL_PLATFORM_LINUX 2
17#define DL_PLATFORM_ANDROID 3
18#define DL_PLATFORM_APPLE 4
19
20#define DL_PLATFORM DL_PLATFORM_ERROR
21
22#ifdef _WIN32
23#undef DL_PLATFORM
24#define DL_PLATFORM DL_PLATFORM_WIN32
25#endif
26
27#ifdef __linux__
28#undef DL_PLATFORM
29#define DL_PLATFORM DL_PLATFORM_LINUX
30#endif
31
32#ifdef __ANDROID__
33#undef DL_PLATFORM
34#define DL_PLATFORM DL_PLATFORM_ANDROID
35#endif
36
37#ifdef __APPLE__
38#undef DL_PLATFORM
39#define DL_PLATFORM DL_PLATFORM_APPLE
40#endif
41
43consteval bool is_x64()
44{
45 return sizeof(void*) == 8;
46}
47
48#if defined(__LP64__) || defined(__amd64__) || defined(__x86_64__) || defined(_M_X64) || defined(__aarch64__) || defined(_M_ARM64)
49#ifndef DL_X64
50#define DL_X64
51#endif
52#endif
53
54
55// CPU架构
56#define DL_CPU_ARCH_ERROR 0
57#define DL_CPU_ARCH_AMD64 0
58#define DL_CPU_ARCH_ARM64 1
59#define DL_CPU_ARCH_X86 2
60#define DL_CPU_ARCH_ARM 3
61
62#define DL_CPU_ARCH DL_CPU_ARCH_ERROR
63
64#if defined(__x86_64__) || defined(_M_X64)
65#undef DL_CPU_ARCH
66#define DL_CPU_ARCH DL_CPU_ARCH_AMD64
67#elif defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
68#undef DL_CPU_ARCH
69#define DL_CPU_ARCH DL_CPU_ARCH_ARM64
70#elif defined(__arm__) || defined(_M_ARM)
71#undef DL_CPU_ARCH
72#define DL_CPU_ARCH DL_CPU_ARCH_ARM
73#elif defined(__i386__) || defined(_M_IX86)
74#undef DL_CPU_ARCH
75#define DL_CPU_ARCH DL_CPU_ARCH_X86
76#endif
77
78
79#define DL_ENDIAN_LITTLE can-not-use
consteval bool is_x64()
是否64位