Files

42 lines
940 B
C
Raw Permalink Normal View History

#pragma once
#if defined(unix) || defined(__unix) || defined(__unix__)
#define HWINFO_UNIX
#endif
#if defined(__APPLE__)
#define HWINFO_APPLE
#endif
#if defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__)
#define HWINFO_WINDOWS
#endif
#if defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) || defined(_M_X64)
#define HWINFO_X86_64
#elif defined(__i386__) || defined(_M_IX86)
#define HWINFO_X86_32
#endif
#if defined(HWINFO_X86_64) || defined(HWINFO_X86_32)
#define HWINFO_X86
#endif
// dll exports/imports for windows shared libraries
#ifdef _WIN32
#ifdef HWINFO_EXPORTS
#define HWINFO_API __declspec(dllexport)
#else
#ifdef HWINFO_IMPORTS
#define HWINFO_API __declspec(dllimport)
#else
#define HWINFO_API
#endif
#endif
#else
#define HWINFO_API
#endif
// macro definitions for C++ > 11 features if compiled with C++ > 11
#if __cplusplus >= 201703L
#define HWI_NODISCARD [[nodiscard]]
#else
#define HWI_NODISCARD
#endif