🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BuildTarget.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include <vector>
25#include <string>
26
27AST_NAMESPACE_BEGIN
28
34using StringVector = std::vector<std::string>;
35
39class AST_UTIL_API BuildTarget
40{
41public: // 配置接口
42
50
51 BuildTarget() = default;
52
56 explicit BuildTarget(StringView name);
57
58 ~BuildTarget() = default;
59
63 const std::string& name() const { return name_; }
64
68 BuildTarget& setName(StringView name);
69
73 EKind kind() const { return kind_; }
74
78 BuildTarget& setKind(StringView kind);
79
83 BuildTarget& setKind(EKind kind);
84
85
89 const StringVector& files() const { return files_; }
90
94 BuildTarget& addFiles(const std::vector<std::string>& files);
95
96
100 const StringVector& includeDirs() const { return includeDirs_; }
101
105 BuildTarget& addIncludeDirs(const std::vector<std::string>& dirs);
106
107
111 const StringVector& linkDirs() const { return linkDirs_; }
112
116 BuildTarget& addLinkDirs(const std::vector<std::string>& dirs);
117
118
122 const StringVector& links() const { return links_; }
123
127 BuildTarget& addLinks(const std::vector<std::string>& libs);
128
129
133 const StringVector& defines() const { return defines_; }
134
138 BuildTarget& addDefines(const std::vector<std::string>& defines);
139
143 // std::string fileName() const;
144
146 // std::string BuildTargetDir() const;
147
151 // std::string BuildTargetFile() const;
152
153public: // 编译、链接、构建、运行、打包等接口
154
158 errc_t build();
159
162 errc_t run();
163
164protected:
165 std::string name_;
166 EKind kind_{EKind::eBinary};
167 std::vector<std::string> files_;
168 std::vector<std::string> includeDirs_;
169 std::vector<std::string> linkDirs_;
170 std::vector<std::string> defines_;
171 std::vector<std::string> links_;
172};
173
176AST_NAMESPACE_END
目标
定义 BuildTarget.hpp:40
std::string name_
目标名称
定义 BuildTarget.hpp:165
const StringVector & defines() const
获取宏定义列表
定义 BuildTarget.hpp:133
const StringVector & linkDirs() const
获取链接目录列表
定义 BuildTarget.hpp:111
EKind kind() const
获取目标类型
定义 BuildTarget.hpp:73
const StringVector & links() const
获取链接库列表
定义 BuildTarget.hpp:122
const std::string & name() const
获取目标名称
定义 BuildTarget.hpp:63
std::vector< std::string > linkDirs_
链接目录列表
定义 BuildTarget.hpp:169
std::vector< std::string > files_
源文件列表
定义 BuildTarget.hpp:167
std::vector< std::string > links_
链接库列表
定义 BuildTarget.hpp:171
std::vector< std::string > defines_
宏定义列表
定义 BuildTarget.hpp:170
EKind
目标类型
定义 BuildTarget.hpp:45
@ eShared
共享库目标
定义 BuildTarget.hpp:46
@ eStatic
静态库目标
定义 BuildTarget.hpp:47
@ eBinary
可执行文件目标
定义 BuildTarget.hpp:48
const StringVector & files() const
获取源文件列表
定义 BuildTarget.hpp:89
const StringVector & includeDirs() const
获取包含目录列表
定义 BuildTarget.hpp:100
std::vector< std::string > includeDirs_
包含目录列表
定义 BuildTarget.hpp:168