//===-- MachOUtils.h - Mach-o specific helpers for dsymutil --------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H #define LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H #include "llvm/ADT/StringRef.h" #include "llvm/Support/FileSystem.h" #include <string> namespace llvm { class MCStreamer; class raw_fd_ostream; namespace dsymutil { class DebugMap; struct LinkOptions; namespace MachOUtils { struct ArchAndFile { std::string Arch; // Optional because TempFile has no default constructor. Optional<llvm::sys::fs::TempFile> File; llvm::Error createTempFile(); llvm::StringRef path() const; ArchAndFile(StringRef Arch) : Arch(Arch) {} ArchAndFile(ArchAndFile &&A) = default; ~ArchAndFile(); }; bool generateUniversalBinary(SmallVectorImpl<ArchAndFile> &ArchFiles, StringRef OutputFileName, const LinkOptions &, StringRef SDKPath); bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, raw_fd_ostream &OutFile); std::string getArchName(StringRef Arch); } // namespace MachOUtils } // namespace dsymutil } // namespace llvm #endif // LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H