OutputFormatCmd.cpp revision f33f6de54db174aa679a4b6d1e040d37e95541c0
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