]> git.tdb.fi Git - builder.git/blob - source/binarypackage.h
Remove most container typedefs and refactor others
[builder.git] / source / binarypackage.h
1 #ifndef BINARYPACKAGE_H_
2 #define BINARYPACKAGE_H_
3
4 #include "package.h"
5
6 /**
7 Represents a package that is installed on the system, but can't be built by
8 Builder.
9 */
10 class BinaryPackage: public Package
11 {
12 public:
13         class Loader: public Msp::DataFile::DerivedObjectLoader<BinaryPackage, Package::Loader>
14         {
15         public:
16                 Loader(BinaryPackage &);
17         private:
18                 void build_info();
19                 void header(const std::string &);
20         };
21
22         using Flags = std::vector<std::string>;
23
24 private:
25         Msp::FS::Path base_path;
26         std::list<std::string> headers;
27         BuildInfo static_binfo;
28
29 public:
30         BinaryPackage(Builder &, const std::string &);
31
32         const BuildInfo &get_static_build_info() const { return static_binfo; }
33
34         static BinaryPackage *from_flags(Builder &, const std::string &, const Flags &, const Flags & = Flags());
35 private:
36         static void process_flags(const Flags &, BuildInfo &);
37         void do_prepare() override;
38 };
39
40 #endif