X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpkgconfiggenerator.cpp;h=46387d35fda45e4ca4f4817edb2e4c3c6c9eacb7;hb=c8c51fac9453a677fc3e6932c4730f35e237af89;hp=02f142331a124c8d4db38e8df0b630a28afd8ba7;hpb=451ef4f33b5a57dcb56bd7cb671bed359ac86247;p=builder.git diff --git a/source/pkgconfiggenerator.cpp b/source/pkgconfiggenerator.cpp index 02f1423..46387d3 100644 --- a/source/pkgconfiggenerator.cpp +++ b/source/pkgconfiggenerator.cpp @@ -2,31 +2,30 @@ #include #include #include "builder.h" +#include "internaltask.h" #include "pkgconfigfile.h" #include "pkgconfiggenerator.h" using namespace std; using namespace Msp; -Target *PkgConfigGenerator::create_target(const vector &, const string &) +PkgConfigGenerator::PkgConfigGenerator(Builder &b): + Tool(b, "PCG") { - throw logic_error("Not implemented"); + set_run_internal(_run); } -Task *PkgConfigGenerator::run(const Target &target) const +Target *PkgConfigGenerator::create_target(const vector &, const string &) { - const PkgConfigFile &pkgc = dynamic_cast(target); - Worker *worker = new Worker(pkgc); - return new InternalTask(worker); + throw logic_error("Not implemented"); } - -void PkgConfigGenerator::Worker::main() +bool PkgConfigGenerator::_run(const PkgConfigFile &pkgc) { - 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()); @@ -60,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) {