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