Files
libradhook/include/radhook/radhook.h
nexusverypro 3192afe07d initial commit
2026-07-03 02:00:27 +01:00

48 lines
1.1 KiB
C++

#ifndef __LIBRADHOOK_HPP__
#define __LIBRADHOOK_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
#include "api.h"
#endif // __LIBRADHOOK_HPP__