| //===- 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 |