//===--- TargetOSMacros.def - Target OS macros ------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file specifies the predefined TARGET_OS_* conditional macros. // A target macro `Name` should be defined if `Predicate` evaluates to true. // The macro expects `const llvm::Triple &Triple` and the class `llvm::Triple` // to be available for the predicate. // //===----------------------------------------------------------------------===// #ifndef TARGET_OS #define TARGET_OS(Name, Predicate) #endif // Windows targets. TARGET_OS(TARGET_OS_WIN32, Triple.isOSWindows()) TARGET_OS(TARGET_OS_WINDOWS, Triple.isOSWindows()) // Linux target. TARGET_OS(TARGET_OS_LINUX, Triple.isOSLinux()) // Unix target. TARGET_OS(TARGET_OS_UNIX, Triple.isOSNetBSD() || Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isOSSolaris()) // Apple (Mac) targets. TARGET_OS(TARGET_OS_MAC, Triple.isOSDarwin()) TARGET_OS(TARGET_OS_OSX, Triple.isMacOSX()) TARGET_OS(TARGET_OS_IPHONE, Triple.isiOS() || Triple.isTvOS() || Triple.isWatchOS()) // Triple::isiOS() also includes tvOS TARGET_OS(TARGET_OS_IOS, Triple.getOS() == llvm::Triple::IOS) TARGET_OS(TARGET_OS_TV, Triple.isTvOS()) TARGET_OS(TARGET_OS_WATCH, Triple.isWatchOS()) TARGET_OS(TARGET_OS_DRIVERKIT, Triple.isDriverKit()) TARGET_OS(TARGET_OS_MACCATALYST, Triple.isMacCatalystEnvironment()) TARGET_OS(TARGET_OS_SIMULATOR, Triple.isSimulatorEnvironment()) // Deprecated Apple target conditionals. TARGET_OS(TARGET_OS_EMBEDDED, (Triple.isiOS() || Triple.isTvOS() \ || Triple.isWatchOS()) \ && !Triple.isMacCatalystEnvironment() \ && !Triple.isSimulatorEnvironment()) TARGET_OS(TARGET_OS_NANO, Triple.isWatchOS()) TARGET_OS(TARGET_IPHONE_SIMULATOR, Triple.isSimulatorEnvironment()) TARGET_OS(TARGET_OS_UIKITFORMAC, Triple.isMacCatalystEnvironment()) #undef TARGET_OS