42 lines
940 B
C++
42 lines
940 B
C++
#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 |