//===- SectLinkerOption.h ---------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_SECTLINKERDATA_H #define MCLD_SECTLINKERDATA_H #ifdef ENABLE_UNITTEST #include <gtest.h> #endif #include <mcld/MC/MCLDInfo.h> #include <mcld/Support/PositionDependentOption.h> #include <string> namespace mcld { class PositionDependentOption; /** \class SectLinkerOption * \brief This file collects inputs to linker. */ class SectLinkerOption { public: // Constructor. SectLinkerOption(MCLDInfo &pLDInfo); // ----- Position-dependent Options ----- // inline void appendOption(PositionDependentOption *pOption) { m_PosDepOptions.push_back(pOption); } inline void prependOption(PositionDependentOption *pOption) { m_PosDepOptions.insert(m_PosDepOptions.begin(), pOption); } inline const PositionDependentOptions &pos_dep_options() const { return m_PosDepOptions; } inline PositionDependentOptions &pos_dep_options() { return m_PosDepOptions; } inline const MCLDInfo &info() const { return *m_pLDInfo; } inline MCLDInfo &info() { return *m_pLDInfo; } ~SectLinkerOption(); private: MCLDInfo *m_pLDInfo; PositionDependentOptions m_PosDepOptions; }; } // namespace of mcld #endif