//===- MCLDFile.cpp -------------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "mcld/MC/MCLDFile.h"
#include "mcld/LD/LDContext.h"
#include "mcld/Support/FileSystem.h"
#include "mcld/Support/MemoryArea.h"
#include <cstring>
#include <cstdlib>
using namespace mcld;
//===----------------------------------------------------------------------===//
// MCLDFile
MCLDFile::MCLDFile()
: m_Type(Unknown), m_pContext(0), m_Path(), m_Name(), m_pMemArea(0) {
}
MCLDFile::MCLDFile(llvm::StringRef pName)
: m_Type(Unknown), m_pContext(0), m_Path(), m_Name(pName.data()), m_pMemArea(0) {
}
MCLDFile::MCLDFile(llvm::StringRef pName,
const sys::fs::Path& pPath,
unsigned int pType)
: m_Type(pType), m_pContext(0), m_Path(pPath), m_Name(pName.data()), m_pMemArea(0) {
}
MCLDFile::~MCLDFile()
{
}
void MCLDFile::setSOName(const std::string& pName)
{
size_t pos = pName.find_last_of(sys::fs::separator);
if (std::string::npos == pos)
m_Name = pName;
else
m_Name = pName.substr(pos + 1);
}