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//===----------------------------------------------------------------------===//
9f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/OutputFormatCmd.h>
10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Support/raw_ostream.h>
11f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
12f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld;
13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// OutputFormatCmd
16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===//
17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputFormatCmd::OutputFormatCmd(const std::string& pFormat)
18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  : ScriptCommand(ScriptCommand::OUTPUT_FORMAT)
19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{
20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pFormat);
21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputFormatCmd::OutputFormatCmd(const std::string& pDefault,
24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines                                 const std::string& pBig,
25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines                                 const std::string& pLittle)
26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  : ScriptCommand(ScriptCommand::OUTPUT_FORMAT)
27f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{
28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pDefault);
29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pBig);
30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  m_FormatList.push_back(pLittle);
31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesOutputFormatCmd::~OutputFormatCmd()
34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{
35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid OutputFormatCmd::dump() const
38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{
39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  mcld::outs() << "OUTPUT_FORMAT ( ";
40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  assert(m_FormatList.size() == 1 || m_FormatList.size() == 3);
41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  for (size_t i = 0; i < m_FormatList.size(); ++i) {
42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines    if (i != 0)
43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines      mcld::outs() << " , ";
44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines    mcld::outs() << m_FormatList[i];
45f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  }
46f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  mcld::outs() << " )\n";
47f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
48f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
49f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid OutputFormatCmd::activate(Module& pModule)
50f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{
51f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines  // TODO
52f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines}
53f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines
54