C++程序  |  49行  |  1.27 KB

//===- DynamicSectionOptions.h --------------------------------------------===//
//
//                     The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_LDLITE_DYNAMIC_SECTION_OPTIONS_H
#define MCLD_LDLITE_DYNAMIC_SECTION_OPTIONS_H
#include <llvm/Support/CommandLine.h>
#include <mcld/Support/CommandLine.h>
#include <string>

namespace mcld {

class ZOption;
class LinkerConfig;
class LinkerScript;

class DynamicSectionOptions
{
public:
  DynamicSectionOptions();

  bool parse(LinkerConfig& pConfig, LinkerScript& pScript);

private:
  llvm::cl::opt<std::string>& m_Entry;
  llvm::cl::opt<bool>& m_Bsymbolic;
  llvm::cl::opt<bool>& m_Bgroup;
  llvm::cl::opt<std::string>& m_SOName;
  llvm::cl::opt<llvm::cl::boolOrDefault>& m_NoUndefined;
  llvm::cl::opt<llvm::cl::boolOrDefault>& m_AllowMulDefs;
  llvm::cl::list<ZOption,
                 bool,
                 llvm::cl::parser<ZOption> >& m_ZOptionList;
  llvm::cl::opt<std::string>& m_Dyld;
  llvm::cl::opt<bool>& m_EnableNewDTags;

  llvm::cl::list<std::string>& m_Auxiliary;
  llvm::cl::opt<std::string>& m_Filter;
};

} // namespace of mcld

#endif