Monado OpenXR Runtime
xrt_config_os.h
Go to the documentation of this file.
1// Copyright 2019, Collabora, Ltd.
2// Copyright 2024-2025, NVIDIA CORPORATION.
3// SPDX-License-Identifier: BSL-1.0
4/*!
5 * @file
6 * @brief Auto detect OS and certain features.
7 * @author Jakob Bornecrantz <jakob@collabora.com>
8 * @ingroup xrt_iface
9 */
10
11#pragma once
12
13
14/*
15 *
16 * Auto detect OS.
17 *
18 */
19
20#if defined(__ANDROID__)
21#include "xrt/xrt_config_android.h"
22#define XRT_OS_ANDROID
23#if defined(XRT_FEATURE_AHARDWARE_BUFFER)
24#define XRT_OS_ANDROID_USE_AHB
25#endif
26#define XRT_OS_LINUX
27#define XRT_OS_UNIX
28#define XRT_OS_WAS_AUTODETECTED
29#endif
30
31#if defined(__linux__) && !defined(XRT_OS_WAS_AUTODETECTED)
32#define XRT_OS_LINUX
33#define XRT_OS_UNIX
34#define XRT_OS_WAS_AUTODETECTED
35#endif
36
37#if defined(_WIN32)
38#define XRT_OS_WINDOWS
39#define XRT_OS_WAS_AUTODETECTED
40#endif
41
42#if defined(__MINGW32__)
43#define XRT_ENV_MINGW
44#endif
45
46#if defined(__APPLE__) && defined(__MACH__)
47#include <TargetConditionals.h>
48#if TARGET_OS_MAC == 1
49#define XRT_OS_OSX
50#define XRT_OS_UNIX
51#define XRT_OS_WAS_AUTODETECTED
52#endif // TARGET_OS_MAC
53#endif
54
55#ifndef XRT_OS_WAS_AUTODETECTED
56#error "OS type not found during compile"
57#endif
58#undef XRT_OS_WAS_AUTODETECTED