aboutsummaryrefslogtreecommitdiff
path: root/libbpkg/manifest.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-07-05 21:44:50 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-07-10 22:24:59 +0300
commit98f8d3031eb4b55fcedb753fdd4473b081023db9 (patch)
treefd6787e635e59582b5b7bb57476e2a1bb2c7ee4c /libbpkg/manifest.hxx
parent9617f1789d76ab7d07d82b040e41d8bc26754b0b (diff)
Add support for build include/exclude manifest values
Diffstat (limited to 'libbpkg/manifest.hxx')
-rw-r--r--libbpkg/manifest.hxx28
1 files changed, 28 insertions, 0 deletions
diff --git a/libbpkg/manifest.hxx b/libbpkg/manifest.hxx
index 1420cdb..ccc52a6 100644
--- a/libbpkg/manifest.hxx
+++ b/libbpkg/manifest.hxx
@@ -321,6 +321,33 @@ namespace bpkg
: conditional (d), buildtime (b), comment (std::move (c)) {}
};
+ class build_constraint
+ {
+ public:
+ // If true, then the package should not be built for matching
+ // configurations by automated build bots.
+ //
+ bool exclusion;
+
+ // Filesystem wildcard patterns for the build configuration name and
+ // target.
+ //
+ std::string config;
+ butl::optional<std::string> target;
+
+ std::string comment;
+
+ build_constraint () = default;
+ build_constraint (bool e,
+ std::string n,
+ butl::optional<std::string> t,
+ std::string c)
+ : exclusion (e),
+ config (std::move (n)),
+ target (std::move (t)),
+ comment (std::move (c)) {}
+ };
+
class LIBBPKG_EXPORT package_manifest
{
public:
@@ -344,6 +371,7 @@ namespace bpkg
butl::optional<email_type> build_email;
std::vector<dependency_alternatives> dependencies;
std::vector<requirement_alternatives> requirements;
+ std::vector<build_constraint> build_constraints;
// The following values are only valid in the manifest list.
//