]> git.tdb.fi Git - builder.git/blobdiff - source/package.cpp
Revamp problem reporting system to be more useful
[builder.git] / source / package.cpp
index 20fec32acfb84d64665ff2c05372482761de3eb2..c905ee464e7041de6372cbcca0f7e7142e20ef35 100644 (file)
@@ -26,6 +26,26 @@ Package::Package(Builder &b, const string &n):
        use_pkgconfig(true)
 { }
 
+/**
+Collects all directly and indirectly required packages, including the package
+itself.
+*/
+PackageList Package::collect_requires()
+{
+       PackageList result;
+       result.push_back(this);
+       for(PackageList::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+       {
+               PackageList r=(*i)->collect_requires();
+               result.splice(result.end(), r);
+       }
+
+       result.sort();
+       result.unique();
+
+       return result;
+}
+
 /**
 Processes configuration options that were most likely obtained from the command
 line.