]> git.tdb.fi Git - builder.git/blob - source/conditionalloader.h
Refactor transitive dependencies to work on all targets
[builder.git] / source / conditionalloader.h
1 #ifndef CONDITIONALLOADER_H_
2 #define CONDITIONALLOADER_H_
3
4 #include <string>
5 #include <msp/datafile/loader.h>
6
7 class Builder;
8 class SourcePackage;
9
10 class ArchitectureConditional: virtual public Msp::DataFile::Loader
11 {
12 private:
13         const Builder &builder;
14         std::string log_prefix;
15
16 protected:
17         ArchitectureConditional(const Builder &, const std::string &);
18
19 private:
20         void if_arch(const std::string &);
21 };
22
23
24 class FeatureConditional: virtual public Msp::DataFile::Loader
25 {
26 private:
27         const SourcePackage &package;
28         std::string log_prefix;
29
30 protected:
31         FeatureConditional(const SourcePackage &, const std::string &);
32
33         void if_feature(const std::string &);
34 };
35
36
37 class ConditionalLoader: public ArchitectureConditional, FeatureConditional
38 {
39 protected:
40         ConditionalLoader(const SourcePackage &, const std::string &);
41 };
42
43 #endif