//===--- DarwinSDKInfo.h - SDK Information parser for darwin ----*- 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 // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_BASIC_DARWINSDKINFO_H #define LLVM_CLANG_BASIC_DARWINSDKINFO_H #include "clang/Basic/LLVM.h" #include "llvm/ADT/DenseMap.h" #include "llvm/Support/Error.h" #include "llvm/Support/VersionTuple.h" #include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Triple.h" #include <optional> namespace llvm { namespace json { class Object; } // end namespace json } // end namespace llvm namespace clang { /// The information about the darwin SDK that was used during this compilation. class DarwinSDKInfo { … }; /// Parse the SDK information from the SDKSettings.json file. /// /// \returns an error if the SDKSettings.json file is invalid, std::nullopt if /// the SDK has no SDKSettings.json, or a valid \c DarwinSDKInfo otherwise. Expected<std::optional<DarwinSDKInfo>> parseDarwinSDKInfo(llvm::vfs::FileSystem &VFS, StringRef SDKRootPath); } // end namespace clang #endif // LLVM_CLANG_BASIC_DARWINSDKINFO_H