I'm writing a library that I need to run on Windows, Mac, Linux, Android, iOS. I have the following definitions already:
#if defined(_WIN32) || defined(__WIN32__)
// Windows
#define SYSTEM_WINDOWS
#elif defined(linux) || defined(__linux)
// Linux
#define SYSTEM_LINUX
#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
// MacOS
#define SYSTEM_MACOS
#elif defined(__ANDROID__)
// Android
#define SYSTEM_ANDROID
#else
// Unsupported system
#error This operating system is not supported
#endif
But I'm not sure what to use for iOS.