Go to the documentation of this file.
7 #ifndef PXR_BASE_ARCH_DEFINES_H
8 #define PXR_BASE_ARCH_DEFINES_H
13 #if defined(__EMSCRIPTEN__)
14 #define ARCH_OS_WASM_VM
15 #elif defined(__linux__)
17 #elif defined(__APPLE__)
18 #include "TargetConditionals.h"
19 #define ARCH_OS_DARWIN
24 #define ARCH_OS_IPHONE
28 #elif defined(_WIN32) || defined(_WIN64)
29 #define ARCH_OS_WINDOWS
36 #if defined(i386) || defined(__i386__) || defined(__x86_64__) || \
37 defined(_M_IX86) || defined(_M_X64)
38 #define ARCH_CPU_INTEL
39 #elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM) || \
48 #if defined(__x86_64__) || defined(__aarch64__) || defined(_M_X64) || \
49 defined(_M_ARM64) || defined(__wasm64__)
51 #elif defined(__wasm32__)
54 #error "Unsupported architecture. x86_64 or ARM64 required."
61 #if defined(__clang__)
62 #define ARCH_COMPILER_CLANG
63 #define ARCH_COMPILER_CLANG_MAJOR __clang_major__
64 #define ARCH_COMPILER_CLANG_MINOR __clang_minor__
65 #define ARCH_COMPILER_CLANG_PATCHLEVEL __clang_patchlevel__
66 #elif defined(__GNUC__)
67 #define ARCH_COMPILER_GCC
68 #define ARCH_COMPILER_GCC_MAJOR __GNUC__
69 #define ARCH_COMPILER_GCC_MINOR __GNUC_MINOR__
70 #define ARCH_COMPILER_GCC_PATCHLEVEL __GNUC_PATCHLEVEL__
72 #define ARCH_COMPILER_ICC
73 #elif defined(_MSC_VER)
74 #define ARCH_COMPILER_MSVC
75 #define ARCH_COMPILER_MSVC_VERSION _MSC_VER
83 #if defined(ARCH_OS_LINUX) && defined(ARCH_COMPILER_GCC)
84 #define ARCH_HAS_GNU_STL_EXTENSIONS
88 #if defined(ARCH_OS_LINUX)
89 #define ARCH_HAS_MMAP_MAP_POPULATE
98 #if defined(ARCH_COMPILER_MSVC)
99 #if !defined(_MSVC_TRADITIONAL) || _MSVC_TRADITIONAL
100 #define ARCH_PREPROCESSOR_MSVC_TRADITIONAL
124 #if defined(ARCH_COMPILER_CLANG)
125 #if defined(__has_feature)
126 #if __has_feature(address_sanitizer)
127 #define ARCH_SANITIZE_ADDRESS
134 #elif defined(ARCH_COMPILER_GCC)
135 #if defined(__has_feature)
136 #if __has_feature(address_sanitizer)
137 #define ARCH_SANITIZE_ADDRESS
144 #if defined(__SANITIZE_ADDRESS__)
145 #define ARCH_SANITIZE_ADDRESS
152 #elif defined(ARCH_COMPILER_MSVC)
153 #if defined(__SANITIZE_ADDRESS__)
154 #define ARCH_SANITIZE_ADDRESS
161 #endif // PXR_BASE_ARCH_DEFINES_H