]> git.tdb.fi Git - builder.git/blobdiff - source/lib/component.cpp
Improve package brokenness checks and problem reporting
[builder.git] / source / lib / component.cpp
index 4fddcef79de59a9ca0ca6cf05e8a5b71ec565a79..b98556c20476c1a92e0096bd9256a54f741c2c01 100644 (file)
@@ -14,7 +14,13 @@ using namespace Msp;
 void Component::prepare()
 {
        for(Package *r: requires)
+       {
                r->prepare();
+               broken |= r->is_broken();
+       }
+
+       if(!problems.empty())
+               broken = true;
 }
 
 void Component::create_build_info()
@@ -176,5 +182,8 @@ void Component::Loader::require(const string &n)
 
 void Component::Loader::source(const string &s)
 {
-       obj.sources.push_back((obj.package.get_source_directory()/s).str());
+       FS::Path src_path = obj.package.get_source_directory()/s;
+       if(!FS::exists(src_path))
+               throw IO::file_not_found(src_path.str());
+       obj.sources.push_back(src_path);
 }