1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- OutputFormatCmd.cpp ------------------------------------------------===//
2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//                     The MCLinker Project
4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source
6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details.
7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//
8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/OutputFormatCmd.h"
1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Support/raw_ostream.h"
11f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
1237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld {
13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// OutputFormatCmd
16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputFormatCmd::OutputFormatCmd(const std::string& pFormat)
1837b74a387bb3993387029859c2d9d051c41c724eStephen Hines    : ScriptCommand(ScriptCommand::OUTPUT_FORMAT) {
19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pFormat);
20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputFormatCmd::OutputFormatCmd(const std::string& pDefault,
23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines                                 const std::string& pBig,
24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines                                 const std::string& pLittle)
2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines    : ScriptCommand(ScriptCommand::OUTPUT_FORMAT) {
26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pDefault);
27f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pBig);
28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pLittle);
29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
3137b74a387bb3993387029859c2d9d051c41c724eStephen HinesOutputFormatCmd::~OutputFormatCmd() {
32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
3437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid OutputFormatCmd::dump() const {
35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  mcld::outs() << "OUTPUT_FORMAT ( ";
36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  assert(m_FormatList.size() == 1 || m_FormatList.size() == 3);
37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  for (size_t i = 0; i < m_FormatList.size(); ++i) {
38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines    if (i != 0)
39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines      mcld::outs() << " , ";
40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines    mcld::outs() << m_FormatList[i];
41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  }
42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  mcld::outs() << " )\n";
43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
4537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid OutputFormatCmd::activate(Module& pModule) {
46f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  // TODO
47f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
48f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
4937b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace mcld
50