mirror of
https://git.recroomarchive.org/Radium/libradhook.git
synced 2026-08-07 09:10:59 +00:00
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#ifndef __LIBRADHOOK_DEFINES_HPP__
|
|
#define __LIBRADHOOK_DEFINES_HPP__
|
|
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
|
|
#include <type_traits>
|
|
|
|
// platform detection
|
|
#if !defined(RADIUM_PLATFORM_WINDOWS) && !defined(RADIUM_PLATFORM_ANDROID)
|
|
# if defined(_WIN32) || defined(_WIN64)
|
|
# define RADIUM_PLATFORM_WINDOWS 1
|
|
# elif defined(__ANDROID__)
|
|
# define RADIUM_PLATFORM_ANDROID 1
|
|
# else
|
|
# error "radhook: unsupported platform -- define RADIUM_PLATFORM_WINDOWS or RADIUM_PLATFORM_ANDROID"
|
|
# endif
|
|
#endif
|
|
|
|
// architecture detection
|
|
#if defined(_M_X64) || defined(__x86_64__)
|
|
# define RADHOOK_ARCH_X64 1
|
|
#elif defined(_M_ARM64) || defined(__aarch64__)
|
|
# define RADHOOK_ARCH_ARM64 1
|
|
#else
|
|
# error "radhook: unsupported architecture -- need x86-64 or aarch64"
|
|
#endif
|
|
|
|
// api macros
|
|
#if defined(_WIN32)
|
|
# if defined(RADHOOK_BUILD)
|
|
# define RADHOOK_API __declspec(dllexport)
|
|
# elif defined(RADHOOK_SHARED)
|
|
# define RADHOOK_API __declspec(dllimport)
|
|
# else
|
|
# define RADHOOK_API
|
|
# endif
|
|
#else
|
|
# if defined(__GNUC__) || defined(__clang__)
|
|
# define RADHOOK_API __attribute__((visibility("default")))
|
|
# else
|
|
# define RADHOOK_API
|
|
# endif
|
|
#endif
|
|
|
|
#endif // __LIBRADHOOK_DEFINES_HPP__
|