Monado OpenXR Runtime
Loading...
Searching...
No Matches
xrt_config_arch.h
Go to the documentation of this file.
1// Copyright 2026, Kitlith
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Auto detect CPU Architecture.
6 * @author Kitlith <kitlith@kitl.pw>
7 * @ingroup xrt_iface
8 */
9
10#pragma once
11
12// referencing <https://wolfcon.github.io/Life/PreDefinedCC++CompilerMarcros.html> and
13// <https://stackoverflow.com/a/66249936>
14
15#if defined(__arm) || defined(__arm__) || defined(__thumb__) || defined(_ARM) || defined(_M_ARM) || defined(_M_ARMT)
16#define XRT_ARCH_ARM
17#define XRT_ARCH_WAS_AUTODETECTED
18#endif
19
20#if defined(__aarch64__) || defined(_M_ARM64)
21#define XRT_ARCH_ARM64
22#define XRT_ARCH_WAS_AUTODETECTED
23#endif
24
25#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__X86__) || defined(_X86_)
26#define XRT_ARCH_X86
27#define XRT_ARCH_WAS_AUTODETECTED
28#endif
29
30#if defined(__x86_64__) || defined(_M_X64)
31#define XRT_ARCH_X86_64
32#define XRT_ARCH_WAS_AUTODETECTED
33#endif
34
35#ifndef XRT_ARCH_WAS_AUTODETECTED
36#error "Arch could not be detected!"
37#endif
38
39#undef XRT_ARCH_WAS_AUTODETECTED