hoshi-lang dev
Yet another programming language
Loading...
Searching...
No Matches
objectLinker.h
Go to the documentation of this file.
1//
2// Created by XIaokang00010 on 2025/7/31.
3//
4
5#ifndef OBJECTLINKER_H
6#define OBJECTLINKER_H
7
8#include "compiler/ir/IR.h"
9#include <memory>
10#include <share/def.hpp>
11#include <filesystem>
12
13namespace yoi {
18 std::shared_ptr<IRBuildConfig> config;
19 public:
20 ObjectLinker(const yoi::vec<yoi::wstr> &objectPaths, const std::shared_ptr<IRBuildConfig> &config);
21
23
25
27
29
31
33
34 std::shared_ptr<IRBuildConfig> getConfig() const;
35
36 ObjectLinker &setConfig(const std::shared_ptr<IRBuildConfig> &config);
37
39
40 virtual ObjectLinker &link(const yoi::wstr &outputPath) = 0;
41
42 virtual ~ObjectLinker() = default;
43
45 };
46} // namespace yoi
47#endif // OBJECTLINKER_H
yoi::wstr elysiaRuntimePath
std::shared_ptr< IRBuildConfig > config
ObjectLinker & setObjectPaths(const yoi::vec< yoi::wstr > &objectPaths)
std::shared_ptr< IRBuildConfig > getConfig() const
static yoi::vec< yoi::wstr > defaultAdditionalLinkingFiles()
yoi::vec< yoi::wstr > objectPaths
ObjectLinker & setLinkerPath(const yoi::wstr &linkerPath)
yoi::wstr getLinkerPath() const
ObjectLinker & setConfig(const std::shared_ptr< IRBuildConfig > &config)
ObjectLinker & setElysiaRuntimePath(const yoi::wstr &elysiaRuntimePath)
yoi::vec< yoi::wstr > getObjectPaths() const
virtual ~ObjectLinker()=default
virtual ObjectLinker & link(const yoi::wstr &outputPath)=0
virtual ObjectLinker & searchAndSetupLinker()=0
yoi::wstr linkerPath
yoi::wstr getElysiaRuntimePath() const
std::vector< t > vec
Definition def.hpp:53
std::wstring wstr
Definition def.hpp:48