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
12namespace llvm {
13class Error;
14class raw_ostream;
15
16namespace object {
17class MachOObjectFile;
18class MachOUniversalBinary;
19} // end namespace object
20
21namespace objcopy {
22struct CommonConfig;
23struct MachOConfig;
24class MultiFormatConfig;
25
26namespace 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.
30Error 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.
37Error 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