2022-07-30 12:24:03 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
2022-10-30 14:59:20 -04:00
|
|
|
#pragma warning(disable : 4099) // type first seen as class
|
|
|
|
#pragma warning(default : 4067)
|
|
|
|
#pragma warning(disable : 4251) // dll-interface
|
|
|
|
#pragma warning(disable : 4244) // narrowing conversion
|
2022-07-30 12:24:03 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
// Set dllexport/dllimport to geode classes & functions
|
|
|
|
|
2024-05-26 07:32:36 -04:00
|
|
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) || defined(WIN64) || defined(_WIN64) || defined(__WIN64) && !defined(__CYGWIN__)
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_WINDOWS(...) __VA_ARGS__
|
|
|
|
#define GEODE_IS_WINDOWS
|
|
|
|
#define GEODE_IS_DESKTOP
|
|
|
|
#define GEODE_PLATFORM_NAME "Windows"
|
|
|
|
#define GEODE_PLATFORM_EXTENSION ".dll"
|
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "win"
|
2022-12-31 07:33:15 -05:00
|
|
|
#define CC_TARGET_OS_WIN32
|
2024-05-26 07:32:36 -04:00
|
|
|
|
2024-05-26 07:37:35 -04:00
|
|
|
#if defined(WIN64) || defined(_WIN64) || defined(__WIN64) && !defined(__CYGWIN__)
|
|
|
|
#define GEODE_IS_WINDOWS64
|
|
|
|
#define GEODE_WINDOWS64(...) __VA_ARGS__
|
|
|
|
#define GEODE_WINDOWS32(...)
|
2024-05-26 08:47:21 -04:00
|
|
|
#define GEODE_CALL
|
2024-05-26 07:37:35 -04:00
|
|
|
#else
|
|
|
|
#define GEODE_IS_WINDOWS32
|
|
|
|
#define GEODE_WINDOWS32(...) __VA_ARGS__
|
|
|
|
#define GEODE_WINDOWS64(...)
|
2024-05-26 08:47:21 -04:00
|
|
|
#define GEODE_CALL __stdcall
|
2024-05-26 07:37:35 -04:00
|
|
|
#endif
|
2022-07-30 12:24:03 -04:00
|
|
|
#else
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_WINDOWS(...)
|
2024-05-26 08:46:40 -04:00
|
|
|
#define GEODE_WINDOWS32(...)
|
|
|
|
#define GEODE_WINDOWS64(...)
|
2022-07-30 12:24:03 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(__APPLE__)
|
2022-10-30 14:59:20 -04:00
|
|
|
#include <TargetConditionals.h>
|
|
|
|
#if TARGET_OS_IPHONE
|
|
|
|
#define GEODE_MACOS(...)
|
2024-06-01 23:05:54 -04:00
|
|
|
#define GEODE_INTEL_MAC(...)
|
|
|
|
#define GEODE_ARM_MAC(...)
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_IOS(...) __VA_ARGS__
|
|
|
|
#define GEODE_IS_IOS
|
|
|
|
#define GEODE_IS_MOBILE
|
|
|
|
#define GEODE_PLATFORM_NAME "iOS"
|
|
|
|
#define GEODE_PLATFORM_EXTENSION ".ios.dylib"
|
2022-10-05 08:41:05 -04:00
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "ios"
|
2022-12-31 07:33:15 -05:00
|
|
|
#define CC_TARGET_OS_IPHONE
|
2022-10-30 14:59:20 -04:00
|
|
|
#else
|
|
|
|
#define GEODE_IOS(...)
|
|
|
|
#define GEODE_MACOS(...) __VA_ARGS__
|
|
|
|
#define GEODE_IS_MACOS
|
|
|
|
#define GEODE_IS_DESKTOP
|
|
|
|
#define GEODE_PLATFORM_NAME "MacOS"
|
|
|
|
#define GEODE_PLATFORM_EXTENSION ".dylib"
|
2022-12-31 07:33:15 -05:00
|
|
|
#define CC_TARGET_OS_MAC
|
2024-06-01 23:05:54 -04:00
|
|
|
|
|
|
|
#if TARGET_CPU_ARM64
|
|
|
|
#define GEODE_IS_ARM_MAC
|
2024-06-07 08:56:35 -04:00
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "mac-arm"
|
2024-06-01 23:05:54 -04:00
|
|
|
#define GEODE_ARM_MAC(...) __VA_ARGS__
|
|
|
|
#define GEODE_INTEL_MAC(...)
|
|
|
|
#else
|
|
|
|
#define GEODE_IS_INTEL_MAC
|
2024-06-07 08:56:35 -04:00
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "mac-intel"
|
2024-06-01 23:05:54 -04:00
|
|
|
#define GEODE_ARM_MAC(...)
|
|
|
|
#define GEODE_INTEL_MAC(...) __VA_ARGS__
|
|
|
|
#endif
|
2022-10-30 14:59:20 -04:00
|
|
|
#endif
|
|
|
|
#define GEODE_CALL
|
2022-07-30 12:24:03 -04:00
|
|
|
#else
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_MACOS(...)
|
|
|
|
#define GEODE_IOS(...)
|
2024-06-01 23:05:54 -04:00
|
|
|
#define GEODE_INTEL_MAC(...)
|
|
|
|
#define GEODE_ARM_MAC(...)
|
2022-07-30 12:24:03 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
// Android
|
|
|
|
#if defined(__ANDROID__)
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_ANDROID(...) __VA_ARGS__
|
|
|
|
#define GEODE_IS_ANDROID
|
|
|
|
#define GEODE_IS_MOBILE
|
|
|
|
#define GEODE_CALL
|
2022-12-31 07:33:15 -05:00
|
|
|
#define CC_TARGET_OS_ANDROID
|
2023-12-23 08:10:23 -05:00
|
|
|
|
|
|
|
#if defined(__arm__)
|
|
|
|
#define GEODE_ANDROID32(...) __VA_ARGS__
|
|
|
|
#define GEODE_ANDROID64(...)
|
|
|
|
#define GEODE_IS_ANDROID32
|
|
|
|
#define GEODE_PLATFORM_NAME "Android32"
|
2024-01-18 15:28:21 -05:00
|
|
|
#define GEODE_PLATFORM_EXTENSION ".android32.so"
|
2023-12-23 08:10:23 -05:00
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "android32"
|
|
|
|
#elif defined(__aarch64__)
|
|
|
|
#define GEODE_ANDROID32(...)
|
|
|
|
#define GEODE_ANDROID64(...) __VA_ARGS__
|
|
|
|
#define GEODE_IS_ANDROID64
|
|
|
|
#define GEODE_PLATFORM_NAME "Android64"
|
2024-01-18 15:28:21 -05:00
|
|
|
#define GEODE_PLATFORM_EXTENSION ".android64.so"
|
2023-12-23 08:10:23 -05:00
|
|
|
#define GEODE_PLATFORM_SHORT_IDENTIFIER "android64"
|
|
|
|
#else
|
|
|
|
#define GEODE_ANDROID32(...)
|
|
|
|
#define GEODE_ANDROID64(...)
|
|
|
|
#endif
|
2022-07-30 12:24:03 -04:00
|
|
|
#else
|
2022-10-30 14:59:20 -04:00
|
|
|
#define GEODE_ANDROID(...)
|
2023-12-23 08:10:23 -05:00
|
|
|
#define GEODE_ANDROID32(...)
|
|
|
|
#define GEODE_ANDROID64(...)
|
2022-07-30 12:24:03 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef GEODE_PLATFORM_NAME
|
2022-10-30 14:59:20 -04:00
|
|
|
#error "Unsupported PlatformID!"
|
2022-07-30 12:24:03 -04:00
|
|
|
#endif
|