X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsourcegenerator.cpp;h=9acd69658173657db5cc02d0f86094d247be1e63;hb=445572ee2ea29141d5fb72153b6ce76fe9014d0d;hp=4f757217958a7acf8eb9a3a981a985d579e60ac3;hpb=276a7c7c046a8f1b692cecbd53f17595ed23264d;p=builder.git diff --git a/source/sourcegenerator.cpp b/source/sourcegenerator.cpp index 4f75721..9acd696 100644 --- a/source/sourcegenerator.cpp +++ b/source/sourcegenerator.cpp @@ -1,4 +1,5 @@ #include +#include #include "builder.h" #include "executable.h" #include "externaltask.h" @@ -56,6 +57,7 @@ Task *SourceGenerator::run(const Target &target) const vector args; args.push_back(executable->get_path().str()); + args.insert(args.end(), arguments.begin(), arguments.end()); const Target::Dependencies &deps = target.get_dependencies(); for(Target::Dependencies::const_iterator i=deps.begin(); i!=deps.end(); ++i) @@ -69,13 +71,20 @@ Task *SourceGenerator::run(const Target &target) const SourceGenerator::Loader::Loader(SourceGenerator &sg): - DataFile::ObjectLoader(sg) + DataFile::ObjectLoader(sg), + ConditionalLoader(sg.package, format("%s/%s", sg.package.get_name(), sg.tag)) { + add("argument", &Loader::argument); add("command", &Loader::command); add("in_suffix", &Loader::in_suffix); add("out_suffix", &Loader::out_suffix); } +void SourceGenerator::Loader::argument(const string &a) +{ + obj.arguments.push_back(a); +} + void SourceGenerator::Loader::command(const string &c) { obj.set_command((obj.package.get_source_directory()/c).str());