187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===- GroupCmd.h ---------------------------------------------------------===// 287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// The MCLinker Project 487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// This file is distributed under the University of Illinois Open Source 687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// License. See LICENSE.TXT for details. 787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===----------------------------------------------------------------------===// 987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#ifndef MCLD_SCRIPT_GROUPCMD_H 1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_SCRIPT_GROUPCMD_H 1187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#include <mcld/Script/ScriptCommand.h> 1387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1487f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesnamespace mcld 1587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines{ 1687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1787f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass StringList; 1887f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass InputTree; 1987f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass InputBuilder; 2087f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass GroupReader; 2187f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass LinkerConfig; 2287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines/** \class GroupCmd 2487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines * \brief This class defines the interfaces to Group command. 2587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines */ 2687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2787f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass GroupCmd : public ScriptCommand 2887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines{ 2987f34658dec9097d987d254a990ea7f311bfc95fStephen Hinespublic: 3087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines GroupCmd(StringList& pStringList, 3187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines InputTree& pInputTree, 3287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines InputBuilder& pBuilder, 3387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines GroupReader& m_GroupReader, 3487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines const LinkerConfig& pConfig); 3587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines ~GroupCmd(); 3687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines void dump() const; 3887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines static bool classof(const ScriptCommand* pCmd) 4087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines { 4187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines return pCmd->getKind() == ScriptCommand::GROUP; 4287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines } 4387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 4487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines void activate(Module& pModule); 4587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 4687f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesprivate: 4787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines StringList& m_StringList; 4887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines InputTree& m_InputTree; 4987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines InputBuilder& m_Builder; 5087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines GroupReader& m_GroupReader; 5187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines const LinkerConfig& m_Config; 5287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines}; 5387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 5487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines} // namespace of mcld 5587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 5687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#endif 5787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 58