diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-07 23:12:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-11 14:05:48 +0300 |
commit | 294c558d577cd4acb2ee8e94e0dfd6acdb946c6c (patch) | |
tree | 02742141dad6cf91040eb48eca54b718dee8ad55 /mod/build-config.hxx | |
parent | 7dabb6e931740b2777be5dca53c3cec0b984f0fb (diff) |
Add support for build configuration class inheritance
Diffstat (limited to 'mod/build-config.hxx')
-rw-r--r-- | mod/build-config.hxx | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/mod/build-config.hxx b/mod/build-config.hxx deleted file mode 100644 index 6eece1d..0000000 --- a/mod/build-config.hxx +++ /dev/null @@ -1,99 +0,0 @@ -// file : mod/build-config.hxx -*- C++ -*- -// copyright : Copyright (c) 2014-2018 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef MOD_BUILD_CONFIG_HXX -#define MOD_BUILD_CONFIG_HXX - -#include <map> -#include <algorithm> // find() - -#include <libbbot/build-config.hxx> - -#include <libbrep/types.hxx> -#include <libbrep/utility.hxx> - -#include <libbrep/build.hxx> -#include <libbrep/build-package.hxx> - -#include <mod/options.hxx> - -// Various build-related state and utilities. -// -namespace brep -{ - using bbot::build_config; - - // Return pointer to the shared build configurations instance, creating one - // on the first call. Throw tab_parsing on parsing error, io_error on the - // underlying OS error. Is not thread-safe. - // - shared_ptr<const bbot::build_configs> - shared_build_config (const path&); - - // Map of build bot agent public keys fingerprints to the key file paths. - // - using bot_agent_keys = std::map<string, path>; - - // Return pointer to the shared build bot agent public keys map, creating - // one on the first call. Throw system_error on the underlying openssl or OS - // error. Not thread-safe. - // - shared_ptr<const bot_agent_keys> - shared_bot_agent_keys (const options::openssl_options&, const dir_path&); - - // Return the package configuration build log url. By default the url is to - // the operations combined log. - // - string - build_log_url (const string& host, const dir_path& root, - const build&, - const string* operation = nullptr); - - // Return the package configuration forced rebuild url. - // - string - force_rebuild_url (const string& host, const dir_path& root, const build&); - - // Check if the configuration belongs to the specified class. - // - inline bool - belongs (const build_config& cfg, const char* cls) - { - const strings& cs (cfg.classes); - return find (cs.begin (), cs.end (), cls) != cs.end (); - } - - // Return true if the specified build configuration is excluded by a package - // based on its underlying build class set, build class expressions, and - // build constraints, potentially extending the underlying set with the - // special classes. Set the exclusion reason if requested. - // - bool - exclude (const build_class_exprs&, - const build_constraints&, - const build_config&, - string* reason = nullptr); - - inline bool - exclude (const build_package& p, const build_config& c, string* r = nullptr) - { - return exclude (p.builds, p.constraints, c, r); - } - - // Convert dash-separated components (target, build configuration name, - // machine name) or a pattern thereof into a path, replacing dashes with - // slashes (directory separators), `**` with `*/**/*`, and appending the - // trailing slash for a subsequent match using the path_match() - // functionality (the idea here is for `linux**` to match `linux-gcc` which - // is quite natural to expect). Throw invalid_path if the resulting path is - // invalid. - // - // Note that the match_absent path match flag must be used for the above - // `**` transformation to work. - // - path - dash_components_to_path (const string&); -} - -#endif // MOD_BUILD_CONFIG_HXX |