]> git.tdb.fi Git - builder.git/blobdiff - source/lib/conditionalloader.h
Rearrange sources into subdirectories
[builder.git] / source / lib / conditionalloader.h
diff --git a/source/lib/conditionalloader.h b/source/lib/conditionalloader.h
new file mode 100644 (file)
index 0000000..5184fac
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef CONDITIONALLOADER_H_
+#define CONDITIONALLOADER_H_
+
+#include <string>
+#include <msp/datafile/loader.h>
+
+class Builder;
+class SourcePackage;
+
+class ArchitectureConditional: virtual public Msp::DataFile::Loader
+{
+private:
+       const Builder &builder;
+       std::string log_prefix;
+
+protected:
+       ArchitectureConditional(const Builder &, const std::string &);
+
+private:
+       void if_arch(const std::string &);
+};
+
+
+class FeatureConditional: virtual public Msp::DataFile::Loader
+{
+private:
+       const SourcePackage &package;
+       std::string log_prefix;
+
+protected:
+       FeatureConditional(const SourcePackage &, const std::string &);
+
+       void if_feature(const std::string &);
+};
+
+
+class ConditionalLoader: public ArchitectureConditional, FeatureConditional
+{
+protected:
+       ConditionalLoader(const SourcePackage &, const std::string &);
+};
+
+#endif