+void Component::Loader::if_arch(const string &cond)
+{
+ bool match = obj.package.get_builder().get_current_arch().match_name(cond);
+ obj.package.get_builder().get_logger().log("configure",
+ format("%s/%s: arch %s %smatched", obj.package.get_name(), obj.name, cond, (match ? "" : "not ")));
+ if(match)
+ load_sub_with(*this);
+}
+
+void Component::Loader::if_feature(const string &cond)
+{
+ bool match = obj.package.match_feature(cond);
+ obj.package.get_builder().get_logger().log("configure",
+ format("%s/%s: feature %s %smatched", obj.package.get_name(), obj.name, cond, (match ? "" : "not ")));
+ if(match)
+ load_sub_with(*this);
+}
+
+void Component::Loader::install_map()
+{
+ load_sub(obj.install_map, obj.package.get_source_directory());
+}
+
+void Component::Loader::overlay(const string &o)