// file : build/config/utility.txx -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #include namespace build { namespace config { template std::pair, bool> required (scope& root, const variable& var, const T& def_value) { using result = std::pair, bool>; if (auto l = root[var]) { return l.belongs (*global_scope) ? result (root.assign (var) = *l, true) : result (*l, false); } else return result (root.assign (var) = def_value, true); } template bool find_option (const char* option, T& s, const char* var) { if (auto l = s[var]) { for (const std::string& s: as (*l)) { if (s == option) return true; } } return false; } } }