12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //===-- MachOUtils.h - Mach-o specific helpers for dsymutil --------------===//
- //
- // 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_TOOLS_DSYMUTIL_MACHOUTILS_H
- #define LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H
- #include "SymbolMap.h"
- #include "llvm/ADT/StringRef.h"
- #include "llvm/Support/FileSystem.h"
- #include "llvm/Support/VirtualFileSystem.h"
- #include <string>
- namespace llvm {
- class MCStreamer;
- class raw_fd_ostream;
- namespace dsymutil {
- class DebugMap;
- struct LinkOptions;
- namespace MachOUtils {
- struct ArchAndFile {
- std::string Arch;
- std::unique_ptr<llvm::sys::fs::TempFile> File;
- llvm::Error createTempFile();
- llvm::StringRef path() const;
- ArchAndFile(StringRef Arch) : Arch(std::string(Arch)) {}
- ArchAndFile(ArchAndFile &&A) = default;
- ArchAndFile &operator=(ArchAndFile &&A) = default;
- ~ArchAndFile();
- };
- bool generateUniversalBinary(SmallVectorImpl<ArchAndFile> &ArchFiles,
- StringRef OutputFileName, const LinkOptions &,
- StringRef SDKPath);
- bool generateDsymCompanion(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS,
- const DebugMap &DM, SymbolMapTranslator &Translator,
- MCStreamer &MS, raw_fd_ostream &OutFile);
- std::string getArchName(StringRef Arch);
- } // namespace MachOUtils
- } // namespace dsymutil
- } // namespace llvm
- #endif // LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H
|