]> git.tdb.fi Git - builder.git/blobdiff - source/lib/binarycomponent.cpp
Install headers of non-installed components in a staging directory
[builder.git] / source / lib / binarycomponent.cpp
index 0b5d3cf84d067c63b554af9c05f063415ca17074..c626536a2317622a1ebffdac3a3b6633921f7a0a 100644 (file)
@@ -95,7 +95,7 @@ void BinaryComponent::create_targets() const
                                if(tool->accepts_suffix(ext))
                                {
                                        t = &dynamic_cast<FileTarget &>(*tool->create_target(*t));
-                                       if(type==LIBRARY && install)
+                                       if(type==LIBRARY)
                                                create_install(*t);
                                }
                        }
@@ -106,7 +106,7 @@ void BinaryComponent::create_targets() const
                        vector<Target *> group = extract_group(pending, *tool);
                        FileTarget &tgt = dynamic_cast<FileTarget &>(*tool->create_target(group));
                        pending.push_back(&tgt);
-                       if(type==LIBRARY && install)
+                       if(type==LIBRARY)
                                create_install(tgt);
                }
        }
@@ -159,7 +159,7 @@ vector<FileTarget *> BinaryComponent::create_sources() const
                if(FileTarget *file = dynamic_cast<FileTarget *>(src))
                {
                        targets.push_back(file);
-                       if(type==LIBRARY && install)
+                       if(type==LIBRARY)
                                create_install(*file);
                }
        }
@@ -193,13 +193,14 @@ vector<Target *> BinaryComponent::extract_group(vector<FileTarget *> &targets, c
 void BinaryComponent::create_install(FileTarget &target) const
 {
        BuildGraph &build_graph = package.get_builder().get_build_graph();
+       auto add_func = (install ? &BuildGraph::add_installed_target : &BuildGraph::add_staged_target);
 
        if(target.is_installable())
-               build_graph.add_installed_target(target);
+               (build_graph.*add_func)(target);
 
        for(Target *s: target.get_side_effects())
                if(dynamic_cast<FileTarget &>(*s).is_installable())
-                       build_graph.add_installed_target(*s);
+                       (build_graph.*add_func)(*s);
 }