12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #ifndef _RVC_PLATFORM_DEFINIED_H__
- #define _RVC_PLATFORM_DEFINIED_H__
- #pragma once
- #if defined(linux) || defined(__linux) || defined(__linux__)
- # define RVC_OS_LINUX
- #elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
- # define RVC_OS_WIN
- #endif
- #if defined( _DEBUG ) || defined (__DEBUG__)
- # ifndef DEBUG
- # define DEBUG
- # endif
- #endif
- #if defined(DEBUG)
- #define WITH_DEBUG
- #elif defined(NDEBUG)
- #define WITH_NO_DEBUG
- #endif
- #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
- #define RVC_DEPRECATED(obj) [[deprecated]] obj
- #define RVC_DEPRECATED_VAR(text, obj) [[deprecated(text)]] obj
- #define RVC_NORETURN(obj) [[noreturn]] obj
- #elif defined(WIN32) && !defined(__CYGWIN__)
- #define RVC_DEPRECATED(obj) __declspec(deprecated) obj
- #define RVC_DEPRECATED_VAR(text, obj) __declspec(deprecated(text)) obj
- #define RVC_NORETURN(obj) __declspec(noreturn) obj
- #elif defined(__GNUC__)
- #define RVC_DEPRECATED(obj) obj __attribute__((deprecated))
- #define RVC_DEPRECATED_VAR(text, obj) obj __attribute__((deprecated(text)))
- #define RVC_NORETURN(obj) __attribute__((__noreturn__)) obj
- #else
- #define RVC_DEPRECATED(obj) obj
- #define RVC_DEPRECATED_VAR(text, obj) obj
- #define RVC_NORETURN(obj) obj
- #endif
- #if defined(__cplusplus) && (__cplusplus >= 201703L)
- #define RVC_ATTR_UNUSED [[maybe_unused]]
- #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202000L)
- #define RVC_ATTR_UNUSED [[maybe_unused]]
- #elif defined(__GNUC__) || defined(__clang__)
- #define RVC_ATTR_UNUSED __attribute__((unused))
- #else
- #define RVC_ATTR_UNUSED
- #endif
- #define RVC_UNUSED(x) (void)(x)
- #if !defined(_MSC_VER)
- #define RVC_DO_PRAGMA(x) _Pragma(#x)
- #else
- #define RVC_DO_PRAGMA(x) __pragma(#x)
- #endif
- #if defined(__GNUC__)
- #define RVC_PRAGMA_WARNING(msg) RVC_DO_PRAGMA(GCC warning #msg)
- #elif defined(__clang__)
- #define RVC_PRAGMA_WARNING(msg) RVC_DO_PRAGMA(GCC warning #msg)
- #elif defined(_MSC_VER) && (_MSC_VER >= 1920)
- #define RVC_PRAGMA_WARNING(msg) RVC_DO_PRAGMA(message \x28 #msg \x29)
- #else
- #define RVC_PRAGMA_WARNING(msg)
- #endif
- #endif //_RVC_PLATFORM_DEFINIED_H__
|