blob: 694fcda43fb97deca81332b79da64f63d5027af1 [file] [log] [blame]
//===- InputCmd.h ---------------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_SCRIPT_INPUTCMD_H_
#define MCLD_SCRIPT_INPUTCMD_H_
#include "mcld/Script/ScriptCommand.h"
namespace mcld {
class ArchiveReader;
class DynObjReader;
class InputBuilder;
class InputTree;
class LinkerConfig;
class ObjectReader;
class StringList;
/** \class InputCmd
* \brief This class defines the interfaces to Input command.
*/
class InputCmd : public ScriptCommand {
public:
InputCmd(StringList& pStringList,
InputTree& pInputTree,
InputBuilder& pBuilder,
ObjectReader& pObjectReader,
ArchiveReader& pArchiveReader,
DynObjReader& pDynObjReader,
const LinkerConfig& pConfig);
~InputCmd();
void dump() const;
static bool classof(const ScriptCommand* pCmd) {
return pCmd->getKind() == ScriptCommand::INPUT;
}
void activate(Module& pModule);
private:
StringList& m_StringList;
InputTree& m_InputTree;
InputBuilder& m_Builder;
ObjectReader& m_ObjectReader;
ArchiveReader& m_ArchiveReader;
DynObjReader& m_DynObjReader;
const LinkerConfig& m_Config;
};
} // namespace mcld
#endif // MCLD_SCRIPT_INPUTCMD_H_