|
36 | 36 | #error "You need C++17 to compile ExecuTorch" |
37 | 37 | #endif |
38 | 38 |
|
39 | | -#if defined(_WIN32) && (defined(min) || defined(max)) |
| 39 | +#if defined(_MSC_VER) && (defined(min) || defined(max)) |
40 | 40 | #error \ |
41 | 41 | "Macro clash with min and max -- define NOMINMAX when compiling your program on Windows" |
42 | 42 | #endif |
|
100 | 100 | #endif // (__cplusplus) >= 202002L |
101 | 101 |
|
102 | 102 | /// Define a C symbol with weak linkage. |
| 103 | +#ifdef _MSC_VER |
| 104 | +// There currently doesn't seem to be a great way to do this in Windows and |
| 105 | +// given that weak linkage is not really critical on Windows, we'll just leave |
| 106 | +// it as a stub. |
| 107 | +#define ET_WEAK |
| 108 | +#else |
103 | 109 | #define ET_WEAK __attribute__((weak)) |
| 110 | +#endif |
104 | 111 |
|
105 | 112 | /** |
106 | 113 | * Annotation marking a function as printf-like, providing compiler support |
107 | 114 | * for format string argument checking. |
108 | 115 | */ |
| 116 | +#ifdef _MSC_VER |
| 117 | +#include <sal.h> |
| 118 | +#define ET_PRINTFLIKE(_string_index, _va_index) _Printf_format_string_ |
| 119 | +#else |
109 | 120 | #define ET_PRINTFLIKE(_string_index, _va_index) \ |
110 | 121 | __attribute__((format(printf, _string_index, _va_index))) |
111 | | - |
112 | | -/// Name of the source file without a directory string. |
113 | | -#define ET_SHORT_FILENAME (__builtin_strrchr("/" __FILE__, '/') + 1) |
| 122 | +#endif |
114 | 123 |
|
115 | 124 | #ifndef __has_builtin |
116 | 125 | #define __has_builtin(x) (0) |
117 | 126 | #endif |
118 | 127 |
|
| 128 | +#if __has_builtin(__builtin_strrchr) |
| 129 | +/// Name of the source file without a directory string. |
| 130 | +#define ET_SHORT_FILENAME (__builtin_strrchr("/" __FILE__, '/') + 1) |
| 131 | +#else |
| 132 | +#define ET_SHORT_FILENAME __FILE__ |
| 133 | +#endif |
| 134 | + |
119 | 135 | #if __has_builtin(__builtin_LINE) |
120 | 136 | /// Current line as an integer. |
121 | 137 | #define ET_LINE __builtin_LINE() |
|
141 | 157 | #endif // ifndef |
142 | 158 |
|
143 | 159 | // Define size_t and ssize_t. |
144 | | -#ifndef _WIN32 |
| 160 | +#ifndef _MSC_VER |
145 | 161 | #include <sys/types.h> |
146 | 162 | #else |
147 | 163 | #include <stddef.h> |
|
0 commit comments