]> git.tdb.fi Git - builder.git/blob - source/binarypackage.h
Use ObjectLoaders where appropriate
[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>
14         {
15         public:
16                 Loader(BinaryPackage &);
17         private:
18                 void build_info();
19         };
20
21 private:
22         bool need_path;
23         Msp::FS::Path path;
24
25 public:
26         BinaryPackage(Builder &, const std::string &);
27
28         /**
29         Sets the path where the package's files were installed.  This is only useful
30         if the package doesn't use pkg-config.
31         */
32         void set_path(const Msp::FS::Path &);
33
34         bool get_need_path() const { return need_path; }
35
36         static BinaryPackage *from_flags(Builder &, const std::string &, const std::vector<std::string> &);
37 private:
38         virtual void create_build_info();
39 };
40
41 #endif