#include "binarypackage.h"
#include "builder.h"
#include "misc.h"
+#include "pkgconfigfile.h"
+#include "tool.h"
#include "sourcepackage.h"
using namespace std;
{
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);
}
}
}
+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)