From 170924278d6eeb2c617ef213e4d615605c3f0b5c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 8 Jul 2021 09:24:54 -0700 Subject: [PATCH] Fixed https://github.com/libsdl-org/SDL/issues/4475 -Wundef errors from clang-11.1 when targeting macOS Targeting i386 against 10.8 SDK: In file included from src/SDL_assert.c:21: In file included from src/./SDL_internal.h:52: In file included from include/SDL_config.h:33: include/SDL_platform.h:73:5: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] ^ 1 error generated. src/joystick/iphoneos/SDL_mfijoystick.m:38:5: error: 'TARGET_OS_IOS' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] ^ src/joystick/iphoneos/SDL_mfijoystick.m:460:5: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] ^ 2 errors generated. src/filesystem/cocoa/SDL_sysfilesystem.m:83:6: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] ^ 1 error generated. Targeting x86_64 against 10.12 SDK: src/video/SDL_video.c:1492:25: error: 'TARGET_OS_MACCATALYST' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] ^ 1 error generated. --- include/SDL_platform.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/SDL_platform.h b/include/SDL_platform.h index ebaa25242fde0..b71d1bf34a332 100644 --- a/include/SDL_platform.h +++ b/include/SDL_platform.h @@ -70,6 +70,24 @@ /* lets us know what version of Mac OS X we're compiling on */ #include "AvailabilityMacros.h" #include "TargetConditionals.h" + +/* Fix building with older SDKs that don't define these + See this for more information: + https://stackoverflow.com/questions/12132933/preprocessor-macro-for-os-x-targets +*/ +#ifndef TARGET_OS_MACCATALYST +#define TARGET_OS_MACCATALYST 0 +#endif +#ifndef TARGET_OS_IOS +#define TARGET_OS_IOS 0 +#endif +#ifndef TARGET_OS_IPHONE +#define TARGET_OS_IPHONE 0 +#endif +#ifndef TARGET_OS_TV +#define TARGET_OS_TV 0 +#endif + #if TARGET_OS_TV #undef __TVOS__ #define __TVOS__ 1