diff options
Diffstat (limited to 'build2/config/utility.txx')
-rw-r--r-- | build2/config/utility.txx | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/build2/config/utility.txx b/build2/config/utility.txx deleted file mode 100644 index 84650d9..0000000 --- a/build2/config/utility.txx +++ /dev/null @@ -1,66 +0,0 @@ -// file : build2/config/utility.txx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include <libbuild2/scope.hxx> -#include <libbuild2/context.hxx> - -namespace build2 -{ - namespace config - { - template <typename T> - pair<lookup, bool> - required (scope& root, - const variable& var, - const T& def_val, - bool def_ovr, - uint64_t save_flags) - { - // Note: see also omitted() if changing anything here. - - if (current_mif->id == configure_id) - save_variable (root, var, save_flags); - - pair<lookup, size_t> org (root.find_original (var)); - - bool n (false); // New flag. - lookup l (org.first); - - // The interaction with command line overrides can get tricky. For - // example, the override to defaul value could make (non-recursive) - // command line override in the outer scope no longer apply. So what we - // are going to do is first ignore overrides and perform the normal - // logic on the original. Then we apply the overrides on the result. - // - if (!l.defined () || (def_ovr && !l.belongs (root))) - { - value& v (root.assign (var) = def_val); - v.extra = true; // Default value flag. - - n = (save_flags & save_commented) == 0; // Absence means default. - l = lookup (v, var, root); - org = make_pair (l, 1); // Lookup depth is 1 since it's in root.vars. - } - // Treat an inherited value that was set to default as new. - // - else if (l->extra) - n = (save_flags & save_commented) == 0; // Absence means default. - - if (var.overrides != nullptr) - { - pair<lookup, size_t> ovr (root.find_override (var, move (org))); - - if (l != ovr.first) // Overriden? - { - // Override is always treated as new. - // - n = true; - l = move (ovr.first); - } - } - - return pair<lookup, bool> (l, n); - } - } -} |