X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpkgconfiggenerator.cpp;h=46387d35fda45e4ca4f4817edb2e4c3c6c9eacb7;hb=1ed833343bc83b83c5f61cbfd74423bbba677a04;hp=e9320448b3508a201676eb783ddf2b8d73b87cd2;hpb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;p=builder.git diff --git a/source/pkgconfiggenerator.cpp b/source/pkgconfiggenerator.cpp index e932044..46387d3 100644 --- a/source/pkgconfiggenerator.cpp +++ b/source/pkgconfiggenerator.cpp @@ -2,6 +2,7 @@ #include #include #include "builder.h" +#include "internaltask.h" #include "pkgconfigfile.h" #include "pkgconfiggenerator.h" @@ -11,31 +12,20 @@ using namespace Msp; PkgConfigGenerator::PkgConfigGenerator(Builder &b): Tool(b, "PCG") { + set_run_internal(_run); } -Target *PkgConfigGenerator::create_target(const list &, const string &) +Target *PkgConfigGenerator::create_target(const vector &, const string &) { throw logic_error("Not implemented"); } -Task *PkgConfigGenerator::run(const Target &target) const +bool PkgConfigGenerator::_run(const PkgConfigFile &pkgc) { - const PkgConfigFile &pkgc = dynamic_cast(target); - Worker *worker = new Worker(pkgc); - return new InternalTask(worker); -} - - -PkgConfigGenerator::Worker::Worker(const PkgConfigFile &t): - target(t) -{ } - -void PkgConfigGenerator::Worker::main() -{ - Builder &builder = target.get_package()->get_builder(); - const SourcePackage &spkg = *target.get_package(); + Builder &builder = pkgc.get_package()->get_builder(); + const SourcePackage &spkg = *pkgc.get_package(); - IO::BufferedFile out(target.get_path().str(), IO::M_WRITE); + IO::BufferedFile out(pkgc.get_path().str(), IO::M_WRITE); IO::print(out, "prefix=%s\n", builder.get_prefix().str()); IO::print(out, "source=%s\n\n", spkg.get_source_directory()); @@ -69,10 +59,10 @@ void PkgConfigGenerator::Worker::main() IO::print(out, " -D%s=%s", kvp.first, kvp.second); out.put('\n'); - status = Task::SUCCESS; + return true; } -string PkgConfigGenerator::Worker::prefixify(const FS::Path &path, const FS::Path &prefix) +string PkgConfigGenerator::prefixify(const FS::Path &path, const FS::Path &prefix) { if(FS::descendant_depth(path, prefix)>=0) {