]> git.tdb.fi Git - builder.git/blobdiff - source/packagemanager.cpp
Fix recognition of versioned msp package directories
[builder.git] / source / packagemanager.cpp
index 730f02271e32a5261c95829b89b51604c1296bef..19b15a45e37de888a72e0a90057d862eaf19392a 100644 (file)
@@ -20,10 +20,7 @@ PackageManager::PackageManager(Builder &b):
        builder(b),
        no_externals(false),
        env_set(false)
-{
-       pkg_path.push_back(builder.get_cwd()/".");
-       pkg_path.push_back(builder.get_cwd()/"..");
-}
+{ }
 
 PackageManager::~PackageManager()
 {
@@ -31,6 +28,11 @@ PackageManager::~PackageManager()
                delete i->second;
 }
 
+void PackageManager::append_package_path(const FS::Path &p)
+{
+       pkg_path.push_back(p);
+}
+
 void PackageManager::set_no_externals(bool x)
 {
        no_externals = x;
@@ -61,8 +63,9 @@ Package *PackageManager::find_package(const string &name)
        if(!no_externals)
        {
                FS::Path path = get_package_location(name);
-               if(!path.empty() && !builder.load_build_file(path/"Build"))
+               if(!path.empty())
                {
+                       builder.load_build_file(path/"Build");
                        i = packages.find(name);
                        if(i!=packages.end())
                                return i->second;
@@ -168,7 +171,7 @@ FS::Path PackageManager::get_package_location(const string &name)
 
                if(!base.compare(0, dash, name))
                        return *i;
-               else if(msp && !base.compare(0, dash-3, name, 3, string::npos))
+               else if(msp && !base.compare(0, dash, name, 3, string::npos))
                        return *i;
        }