1 //===- MachOObjcopy.h -------------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H 10 #define LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H 11 12 namespace llvm { 13 class Error; 14 class raw_ostream; 15 16 namespace object { 17 class MachOObjectFile; 18 class MachOUniversalBinary; 19 } // end namespace object 20 21 namespace objcopy { 22 struct CommonConfig; 23 struct MachOConfig; 24 class MultiFormatConfig; 25 26 namespace macho { 27 /// Apply the transformations described by \p Config and \p MachOConfig to 28 /// \p In and writes the result into \p Out. 29 /// \returns any Error encountered whilst performing the operation. 30 Error executeObjcopyOnBinary(const CommonConfig &Config, 31 const MachOConfig &MachOConfig, 32 object::MachOObjectFile &In, raw_ostream &Out); 33 34 /// Apply the transformations described by \p Config and \p MachOConfig to 35 /// \p In and writes the result into \p Out. 36 /// \returns any Error encountered whilst performing the operation. 37 Error executeObjcopyOnMachOUniversalBinary( 38 const MultiFormatConfig &Config, const object::MachOUniversalBinary &In, 39 raw_ostream &Out); 40 41 } // end namespace macho 42 } // end namespace objcopy 43 } // end namespace llvm 44 45 #endif // LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H 46