]> git.tdb.fi Git - builder.git/blobdiff - source/packagemanager.cpp
Move main package tracking to PackageManager
[builder.git] / source / packagemanager.cpp
index 240bf60caafd888ad9b56845331235c8849dce62..93fbbc9c0ed204b56b11fea1dde7a9f33dae9099 100644 (file)
@@ -19,6 +19,7 @@ using namespace Msp;
 PackageManager::PackageManager(Builder &b):
        builder(b),
        no_externals(false),
+       main_pkg(0),
        env_set(false)
 { }
 
@@ -54,9 +55,19 @@ void PackageManager::add_package(Package *pkg)
                        throw logic_error("Package is already managed");
        }
 
+       if(packages.empty())
+               main_pkg = pkg;
+
        packages.insert(PackageMap::value_type(pkg->get_name(), pkg));
 }
 
+Package &PackageManager::get_main_package() const
+{
+       if(!main_pkg)
+               throw logic_error("No packages");
+       return *main_pkg;
+}
+
 Package *PackageManager::find_package(const string &name)
 {
        if(not_found.count(name))