1533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===- OutputFormatOptions.h ----------------------------------------------===// 2533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 3533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// The MCLinker Project 4533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 5533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// This file is distributed under the University of Illinois Open Source 6533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// License. See LICENSE.TXT for details. 7533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 8533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===----------------------------------------------------------------------===// 9533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#ifndef MCLD_LDLITE_OUTPUT_FORMAT_OPTIONS_H 10533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#define MCLD_LDLITE_OUTPUT_FORMAT_OPTIONS_H 11533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <llvm/Support/CommandLine.h> 12533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <mcld/Support/CommandLine.h> 13533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <mcld/LinkerConfig.h> 14533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <mcld/GeneralOptions.h> 15533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <mcld/Support/Path.h> 16533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <mcld/MC/Input.h> 17533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <string> 18533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 19533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesnamespace mcld { 20533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 21533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass Module; 22533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 23533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass OutputFormatOptions 24533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines{ 25533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinespublic: 26533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines OutputFormatOptions(); 27533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 28533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool parse(Module& pModule, LinkerConfig& pConfig); 29533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 30533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool parseOutput(Module& pModule, LinkerConfig& pConfig); 31533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 32533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesprivate: 33533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<mcld::sys::fs::Path, 34533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines false, 35533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::parser<mcld::sys::fs::Path> >& m_OutputFilename; 36533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<mcld::LinkerConfig::CodeGenType>& m_FileType; 37533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<mcld::LinkerConfig::CodeGenType>& m_OFormat; 38533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_Shared; 39533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_PIE; 40533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_Relocatable; 41533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<mcld::Input::Type>& m_Format; 42533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_StripDebug; 43533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_StripAll; 44533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_DiscardAll; 45533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_DiscardLocals; 46533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_EhFrameHdr; 47533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_NMagic; 48533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_OMagic; 49533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<mcld::GeneralOptions::HashStyle>& m_HashStyle; 50533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 51533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_ExportDynamic; 52533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<std::string>& m_BuildID; 53533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_ExcludeLIBS; 54533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 55533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<bool>& m_NoWarnMismatch; 56533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines}; 57533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 58533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines} // namespace of mcld 59533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 60533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#endif 61533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 62