]> git.tdb.fi Git - builder.git/blob - source/condition.h
Install shared libraries on windows to bin, not lib
[builder.git] / source / condition.h
1 #ifndef CONDITION_H_
2 #define CONDITION_H_
3
4 #include <msp/datafile/loader.h>
5 #include "buildinfo.h"
6
7 class Config;
8 class SourcePackage;
9
10 class Condition
11 {
12 public:
13         class Loader: public Msp::DataFile::ObjectLoader<Condition>
14         {
15         public:
16                 Loader(Condition &);
17         private:
18                 void require(const std::string &);
19                 void build_info();
20         };
21
22         typedef std::list<std::string> RequireList;
23
24 private:
25         typedef std::map<std::string, std::string> Expression;
26         
27         SourcePackage &pkg;
28         Expression expression;
29         RequireList requires;
30         BuildInfo build_info;
31
32 public:
33         Condition(SourcePackage &, const std::string &);
34         const RequireList &get_requires() const { return requires; }
35         const BuildInfo &get_build_info() const { return build_info; }
36         bool eval();
37 };
38
39 #endif