X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsourcegenerator.cpp;h=c7a4f92204c214e2b9b5877d1cf258fefa4f9eb0;hb=ae85358a5f3d408f9886f58c8cdb2c6c92c3a25a;hp=192ae289584b186461bd1442cbe1ce800391c7af;hpb=4e2a160d94ca808cfb511cc2d38e115d989809f2;p=builder.git diff --git a/source/sourcegenerator.cpp b/source/sourcegenerator.cpp index 192ae28..c7a4f92 100644 --- a/source/sourcegenerator.cpp +++ b/source/sourcegenerator.cpp @@ -75,6 +75,8 @@ Task *SourceGenerator::run(const Target &target) const if(const TemplateFile *tmpl = dynamic_cast(*i)) args.push_back(FS::relative(tmpl->get_path(), work_dir).str()); + if(!out_argument.empty()) + args.push_back(out_argument); args.push_back(FS::relative(out_src.get_path(), work_dir).str()); return new ExternalTask(args, work_dir); @@ -88,6 +90,7 @@ SourceGenerator::Loader::Loader(SourceGenerator &sg): add("argument", &Loader::argument); add("command", &Loader::command); add("in_suffix", &Loader::in_suffix); + add("out_argument", &SourceGenerator::out_argument); add("out_suffix", &Loader::out_suffix); add("processing_unit", static_cast(&SourceGenerator::processing_unit)); } @@ -99,7 +102,10 @@ void SourceGenerator::Loader::argument(const string &a) void SourceGenerator::Loader::command(const string &c) { - obj.set_command((obj.package.get_source_directory()/c).str()); + if(c.find('/')!=string::npos) + obj.set_command((obj.package.get_source_directory()/c).str()); + else + obj.set_command(c); } void SourceGenerator::Loader::in_suffix(const string &s)