xref: /freebsd/contrib/llvm-project/llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
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