X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fsourcepackage.cpp;h=d66a36fb4b247c289db1825df1f8c2e667fb7543;hb=1d687970cc35e54c3335f4aa2fdef23424fe0a06;hp=7d0ed1d97095f034ff074a8d46858ddb9a36db11;hpb=50be4619cca4bb44e5abf8759720c255ef6d3b45;p=builder.git diff --git a/source/sourcepackage.cpp b/source/sourcepackage.cpp index 7d0ed1d..d66a36f 100644 --- a/source/sourcepackage.cpp +++ b/source/sourcepackage.cpp @@ -5,6 +5,8 @@ #include "binarypackage.h" #include "builder.h" #include "misc.h" +#include "pkgconfigfile.h" +#include "tool.h" #include "sourcepackage.h" using namespace std; @@ -141,7 +143,7 @@ void SourcePackage::do_configure(const StringMap &opts, unsigned flag) { const StringList &reqs = i->get_requires(); for(StringList::const_iterator j=reqs.begin(); j!=reqs.end(); ++j) - if(Package *pkg = builder.get_package(*j)) + if(Package *pkg = builder.get_package_manager().find_package(*j)) requires.push_back(pkg); } @@ -226,6 +228,23 @@ void SourcePackage::create_build_info() } } +void SourcePackage::create_targets() +{ + bool pc_needed = false; + for(ComponentList::const_iterator i=components.begin(); i!=components.end(); ++i) + { + i->create_targets(); + if(i->get_type()==Component::LIBRARY || i->get_type()==Component::HEADERS) + pc_needed = true; + } + + if(pc_needed) + { + PkgConfigFile *pc = new PkgConfigFile(builder, *this); + builder.get_target("install")->add_depend(builder.get_toolchain().get_tool("CP").create_target(*pc)); + } +} + SourcePackage::Loader::Loader(Package &p): Package::Loader(p)