xref: /llvm-project/llvm/include/llvm/TextAPI/Platform.h (revision 7de8cd617b6980e0881a84e3dbfda94c3227e98a)
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