1f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===- LinkerScript.cpp ---------------------------------------------------===// 2affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 3affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// The MCLinker Project 4affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 5affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// This file is distributed under the University of Illinois Open Source 6affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// License. See LICENSE.TXT for details. 7affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 8affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerScript.h" 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 13cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 14f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// LinkerScript 15cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 1637b74a387bb3993387029859c2d9d051c41c724eStephen HinesLinkerScript::LinkerScript() { 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1937b74a387bb3993387029859c2d9d051c41c724eStephen HinesLinkerScript::~LinkerScript() { 20affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesconst mcld::sys::fs::Path& LinkerScript::sysroot() const { 23f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines return m_SearchDirs.sysroot(); 24f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 25f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid LinkerScript::setSysroot(const mcld::sys::fs::Path& pSysroot) { 27f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines m_SearchDirs.setSysRoot(pSysroot); 28f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 29f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hinesbool LinkerScript::hasSysroot() const { 31f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines return !sysroot().empty(); 32f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} 33f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesconst std::string& LinkerScript::entry() const { 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return m_Entry; 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid LinkerScript::setEntry(const std::string& pEntry) { 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_Entry = pEntry; 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesbool LinkerScript::hasEntry() const { 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return !m_Entry.empty(); 44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 45f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesconst std::string& LinkerScript::outputFile() const { 47f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return m_OutputFile; 48f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 49f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid LinkerScript::setOutputFile(const std::string& pOutputFile) { 51f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_OutputFile = pOutputFile; 52f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 53f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesbool LinkerScript::hasOutputFile() const { 55f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return !m_OutputFile.empty(); 56f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5837b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 59