Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/openxr/src/common/stdfs_conditions.h
9906 views
1
// Copyright (c) 2017-2025 The Khronos Group Inc.
2
// Copyright (c) 2017 Valve Corporation
3
// Copyright (c) 2017 LunarG, Inc.
4
//
5
// SPDX-License-Identifier: Apache-2.0 OR MIT
6
7
#ifndef _STDFS_CONDITIONS_H
8
#define _STDFS_CONDITIONS_H
9
10
// If the C++ macro is set to the version containing C++17, it must support
11
// the final C++17 package
12
#if __cplusplus >= 201703L
13
#define USE_EXPERIMENTAL_FS 0
14
#define USE_FINAL_FS 1
15
16
#elif defined(_MSC_VER) && _MSC_VER >= 1900
17
18
#if defined(_HAS_CXX17) && _HAS_CXX17
19
// When MSC supports c++17 use <filesystem> package.
20
#define USE_EXPERIMENTAL_FS 0
21
#define USE_FINAL_FS 1
22
#endif // !_HAS_CXX17
23
24
// GCC supports the experimental filesystem items starting in GCC 6
25
#elif (__GNUC__ >= 6)
26
#define USE_EXPERIMENTAL_FS 1
27
#define USE_FINAL_FS 0
28
29
// If Clang, check for feature support
30
#elif defined(__clang__) && (__cpp_lib_filesystem || __cpp_lib_experimental_filesystem)
31
#if __cpp_lib_filesystem
32
#define USE_EXPERIMENTAL_FS 0
33
#define USE_FINAL_FS 1
34
#else
35
#define USE_EXPERIMENTAL_FS 1
36
#define USE_FINAL_FS 0
37
#endif
38
39
// If all above fails, fall back to standard C++ and OS-specific items
40
#else
41
#define USE_EXPERIMENTAL_FS 0
42
#define USE_FINAL_FS 0
43
#endif
44
45
#endif // !_STDFS_CONDITIONS_H
46
47