10116d04dSCyndy Ishida //===- llvm/TextAPI/Platform.h - Platform -----------------------*- C++ -*-===// 20116d04dSCyndy Ishida // 30116d04dSCyndy Ishida // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40116d04dSCyndy Ishida // See https://llvm.org/LICENSE.txt for license information. 50116d04dSCyndy Ishida // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60116d04dSCyndy Ishida // 70116d04dSCyndy Ishida //===----------------------------------------------------------------------===// 80116d04dSCyndy Ishida // 90116d04dSCyndy Ishida // Defines the Platforms supported by Tapi and helpers. 100116d04dSCyndy Ishida // 110116d04dSCyndy Ishida //===----------------------------------------------------------------------===// 12eec96db1SKazu Hirata #ifndef LLVM_TEXTAPI_PLATFORM_H 13eec96db1SKazu Hirata #define LLVM_TEXTAPI_PLATFORM_H 140116d04dSCyndy Ishida 150116d04dSCyndy Ishida #include "llvm/ADT/SmallSet.h" 160116d04dSCyndy Ishida #include "llvm/BinaryFormat/MachO.h" 1739748656SCyndy Ishida #include "llvm/Support/VersionTuple.h" 180116d04dSCyndy Ishida 190116d04dSCyndy Ishida namespace llvm { 200116d04dSCyndy Ishida namespace MachO { 210116d04dSCyndy Ishida 223025c3edSJuergen Ributzka using PlatformSet = SmallSet<PlatformType, 3>; 23*7de8cd61SCyndy Ishida using PlatformVersionSet = SmallSet<std::pair<PlatformType, VersionTuple>, 3>; 240116d04dSCyndy Ishida 253025c3edSJuergen Ributzka PlatformType mapToPlatformType(PlatformType Platform, bool WantSim); 263025c3edSJuergen Ributzka PlatformType mapToPlatformType(const Triple &Target); 270116d04dSCyndy Ishida PlatformSet mapToPlatformSet(ArrayRef<Triple> Targets); 283025c3edSJuergen Ributzka StringRef getPlatformName(PlatformType Platform); 293025c3edSJuergen Ributzka PlatformType getPlatformFromName(StringRef Name); 303025c3edSJuergen Ributzka std::string getOSAndEnvironmentName(PlatformType Platform, 315b5ab80eSSam Powell std::string Version = ""); 3239748656SCyndy Ishida VersionTuple mapToSupportedOSVersion(const Triple &Triple); 330116d04dSCyndy Ishida 340116d04dSCyndy Ishida } // end namespace MachO. 350116d04dSCyndy Ishida } // end namespace llvm. 360116d04dSCyndy Ishida 37eec96db1SKazu Hirata #endif // LLVM_TEXTAPI_PLATFORM_H 38