]> git.tdb.fi Git - builder.git/blob - source/lib/plugin.h
Make it possible for plugins to require other plugins
[builder.git] / source / lib / plugin.h
1 #ifndef PLUGIN_H_
2 #define PLUGIN_H_
3
4 #include <string>
5 #include <vector>
6 #include "libbuilder_api.h"
7
8 class Architecture;
9 class Builder;
10 class SourcePackage;
11 class Toolchain;
12
13 class LIBBUILDER_API Plugin
14 {
15 protected:
16         Builder &builder;
17         std::vector<std::string> required_plugins;
18
19         Plugin(Builder &b): builder(b) { }
20 public:
21         virtual ~Plugin() = default;
22
23         const std::vector<std::string> &get_required_plugins() const { return required_plugins; }
24
25         virtual void add_tools(Toolchain &, const Architecture &) const { }
26         virtual void create_targets(SourcePackage &) const { }
27 };
28
29 #endif