aboutsummaryrefslogtreecommitdiff
path: root/bdep/ci.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'bdep/ci.cxx')
-rw-r--r--bdep/ci.cxx26
1 files changed, 22 insertions, 4 deletions
diff --git a/bdep/ci.cxx b/bdep/ci.cxx
index 473a5fa..74cfd7a 100644
--- a/bdep/ci.cxx
+++ b/bdep/ci.cxx
@@ -213,10 +213,6 @@ namespace bdep
0, 0, 0}); // File positions.
};
- // Add the default overrides.
- //
- override ("build-email", "", origin::build_email);
-
// Append the overrides specified by --override, --overrides-file,
// --build-email, and --builds which are all handled by
// cli::parser<cmd_ci_override>. But first verify that they don't clash
@@ -229,6 +225,8 @@ namespace bdep
(o.interactive_specified () &&
o.interactive ().find ('/') != string::npos));
+ bool build_email_ovr (false);
+
if (o.overrides_specified ())
{
const char* co (o.target_config_specified () ? "--target-config" :
@@ -258,10 +256,25 @@ namespace bdep
n == "builds" ||
n == "build-include" ||
n == "build-exclude"))
+ {
fail << "invalid " << to_string (static_cast<origin> (nv.name_line))
<< ": " << "'" << n << "' override specified together with "
<< co <<
info << "override: " << n << ": " << nv.value;
+ }
+
+ if (n == "build-email" ||
+ n == "build-warning-email" ||
+ n == "build-error-email" ||
+ (n.size () > 12 &&
+ n.compare (n.size () - 12, 12, "-build-email") == 0) ||
+ (n.size () > 20 &&
+ n.compare (n.size () - 20, 20, "-build-warning-email") == 0) ||
+ (n.size () > 18 &&
+ n.compare (n.size () - 18, 18, "-build-error-email") == 0))
+ {
+ build_email_ovr = true;
+ }
}
overrides.insert (overrides.end (),
@@ -269,6 +282,11 @@ namespace bdep
o.overrides ().end ());
}
+ // Add the default overrides.
+ //
+ if (!build_email_ovr)
+ override ("build-email", "", origin::build_email);
+
// Append the overrides specified by --target-config, but first verify
// that they don't clash with the other build constraints-related options.
//