Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:44:17

0001 //===- ConfigManager.h ------------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_OBJCOPY_CONFIGMANAGER_H
0010 #define LLVM_OBJCOPY_CONFIGMANAGER_H
0011 
0012 #include "llvm/ObjCopy/COFF/COFFConfig.h"
0013 #include "llvm/ObjCopy/CommonConfig.h"
0014 #include "llvm/ObjCopy/ELF/ELFConfig.h"
0015 #include "llvm/ObjCopy/MachO/MachOConfig.h"
0016 #include "llvm/ObjCopy/MultiFormatConfig.h"
0017 #include "llvm/ObjCopy/wasm/WasmConfig.h"
0018 #include "llvm/ObjCopy/XCOFF/XCOFFConfig.h"
0019 
0020 namespace llvm {
0021 namespace objcopy {
0022 
0023 struct ConfigManager : public MultiFormatConfig {
0024   virtual ~ConfigManager() {}
0025 
0026   const CommonConfig &getCommonConfig() const override { return Common; }
0027 
0028   Expected<const ELFConfig &> getELFConfig() const override { return ELF; }
0029 
0030   Expected<const COFFConfig &> getCOFFConfig() const override;
0031 
0032   Expected<const MachOConfig &> getMachOConfig() const override;
0033 
0034   Expected<const WasmConfig &> getWasmConfig() const override;
0035 
0036   Expected<const XCOFFConfig &> getXCOFFConfig() const override;
0037 
0038   // All configs.
0039   CommonConfig Common;
0040   ELFConfig ELF;
0041   COFFConfig COFF;
0042   MachOConfig MachO;
0043   WasmConfig Wasm;
0044   XCOFFConfig XCOFF;
0045 };
0046 
0047 } // namespace objcopy
0048 } // namespace llvm
0049 
0050 #endif // LLVM_OBJCOPY_CONFIGMANAGER_H