- //===- ObjCopy.h ------------------------------------------------*- C++ -*-===// 
- // 
- // 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_OBJCOPY_OBJCOPY_H 
- #define LLVM_OBJCOPY_OBJCOPY_H 
-   
- #include "llvm/Support/Error.h" 
-   
- namespace llvm { 
- class raw_ostream; 
-   
- namespace object { 
- class Archive; 
- class Binary; 
- } // end namespace object 
-   
- namespace objcopy { 
- class MultiFormatConfig; 
-   
- /// Applies the transformations described by \p Config to 
- /// each member in archive \p Ar. 
- /// Writes a result in a file specified by \p Config.OutputFilename. 
- /// \returns any Error encountered whilst performing the operation. 
- Error executeObjcopyOnArchive(const MultiFormatConfig &Config, 
-                               const object::Archive &Ar); 
-   
- /// Applies the transformations described by \p Config to \p In and writes 
- /// the result into \p Out. This function does the dispatch based on the 
- /// format of the input binary (COFF, ELF, MachO or wasm). 
- /// \returns any Error encountered whilst performing the operation. 
- Error executeObjcopyOnBinary(const MultiFormatConfig &Config, 
-                              object::Binary &In, raw_ostream &Out); 
-   
- } // end namespace objcopy 
- } // end namespace llvm 
-   
- #endif // LLVM_OBJCOPY_OBJCOPY_H 
-