]> git.tdb.fi Git - builder.git/commitdiff
Add an option to disable installing headers of a binary component
authorMikko Rasa <tdb@tdb.fi>
Mon, 24 Apr 2023 02:26:58 +0000 (19:26 -0700)
committerMikko Rasa <tdb@tdb.fi>
Mon, 24 Apr 2023 02:26:58 +0000 (19:26 -0700)
This can be used with a separate install component to control which
headers are installed.

source/lib/binarycomponent.cpp
source/lib/binarycomponent.h

index 408ea464d9ef5a01dad5f1dfdb03b7d7a88c7fac..d13a8606142400d497bf2976928d330996ca6145 100644 (file)
@@ -87,7 +87,7 @@ void BinaryComponent::create_targets() const
                                if(tool->accepts_suffix(ext))
                                {
                                        t = &dynamic_cast<FileTarget &>(*tool->create_target(*t));
-                                       if(type==LIBRARY)
+                                       if(type==LIBRARY && install_headers)
                                                create_install(*t);
                                }
                        }
@@ -98,7 +98,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)
+                       if(type==LIBRARY && install_headers)
                                create_install(tgt);
                }
        }
@@ -151,7 +151,7 @@ vector<FileTarget *> BinaryComponent::create_sources() const
                if(FileTarget *file = dynamic_cast<FileTarget *>(src))
                {
                        targets.push_back(file);
-                       if(type==LIBRARY)
+                       if(type==LIBRARY && install_headers)
                                create_install(*file);
                }
        }
@@ -199,6 +199,7 @@ void BinaryComponent::create_install(FileTarget &target) const
 BinaryComponent::Loader::Loader(BinaryComponent &c):
        DataFile::DerivedObjectLoader<BinaryComponent, Component::Loader>(c)
 {
+       add("install_headers", &BinaryComponent::install_headers);
        add("use", &Loader::use);
 }
 
index c7abe5792bda42312749a02af4dc1060bcaff169..d5c9ab25c2940a806046362fd12c01fee559e3fa 100644 (file)
@@ -29,6 +29,7 @@ public:
 private:
        Type type;
        std::vector<const Component *> uses;
+       bool install_headers = true;
 
 public:
        BinaryComponent(SourcePackage &p, const std::string &n, Type t): Component(p, n), type(t) { }