1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar//===-- MachOUtils.h - Mach-o specific helpers for dsymutil --------------===// 2f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// 3f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// The LLVM Compiler Infrastructure 4f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// 5f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// This file is distributed under the University of Illinois Open Source 6f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// License. See LICENSE.TXT for details. 7f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// 8f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar//===----------------------------------------------------------------------===// 9f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar#ifndef LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H 10f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar#define LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H 11f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 12f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar#include <string> 13f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar#include "llvm/ADT/StringRef.h" 14f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 15f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarnamespace llvm { 16f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarclass MCStreamer; 17f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarclass raw_fd_ostream; 18f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarnamespace dsymutil { 19f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarclass DebugMap; 20f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarstruct LinkOptions; 21f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarnamespace MachOUtils { 22f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 23f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarstruct ArchAndFilename { 24f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar std::string Arch, Path; 25f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar ArchAndFilename(StringRef Arch, StringRef Path) : Arch(Arch), Path(Path) {} 26f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar}; 27f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 28f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarbool generateUniversalBinary(SmallVectorImpl<ArchAndFilename> &ArchFiles, 29f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar StringRef OutputFileName, const LinkOptions &, 30f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar StringRef SDKPath); 31f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 32f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarbool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, 33f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar raw_fd_ostream &OutFile); 34f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 35f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainarstd::string getArchName(StringRef Arch); 36f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 37f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 38f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar} 39f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar#endif // LLVM_TOOLS_DSYMUTIL_MACHOUTILS_H 40