]> git.tdb.fi Git - builder.git/blobdiff - source/sourcegenerator.h
Add a statement to specify multiple arguments at once for a generator
[builder.git] / source / sourcegenerator.h
index b3c00e4d5f3e8e372318b106815fb9654425c80e..b0c8d4bf997b114a725f027bb9866284b99c8b8d 100644 (file)
@@ -2,26 +2,32 @@
 #define SOURCEGENERATOR_H_
 
 #include <msp/datafile/objectloader.h>
+#include "conditionalloader.h"
 #include "sourcepackage.h"
 #include "tool.h"
 
 class SourceGenerator: public Tool
 {
 public:
-       class Loader: public Msp::DataFile::ObjectLoader<SourceGenerator>
+       class Loader: public Msp::DataFile::ObjectLoader<SourceGenerator>, public ConditionalLoader
        {
        public:
                Loader(SourceGenerator &);
 
        private:
+               void argument(const std::string &);
+               void arguments(const std::vector<std::string> &);
                void command(const std::string &);
                void in_suffix(const std::string &);
+               void out_argument(const std::string &);
                void out_suffix(const std::string &);
        };
 
 private:
        const SourcePackage &package;
        std::list<std::string> out_suffixes;
+       std::list<std::string> arguments;
+       std::string out_argument;
 
 public:
        SourceGenerator(Builder &, const SourcePackage &, const std::string &);
@@ -29,10 +35,6 @@ public:
        virtual Target *create_source(const Component &, const Msp::FS::Path &) const;
        virtual Target *create_target(const std::list<Target *> &, const std::string &);
 
-private:
-       virtual void do_prepare();
-
-public:
        virtual Task *run(const Target &) const;
 };