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