diff options
Diffstat (limited to 'bbot/build-config')
-rw-r--r-- | bbot/build-config | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/bbot/build-config b/bbot/build-config new file mode 100644 index 0000000..0a3ecb3 --- /dev/null +++ b/bbot/build-config @@ -0,0 +1,54 @@ +// file : bbot/build-config -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#ifndef BBOT_BUILD_CONFIG +#define BBOT_BUILD_CONFIG + +#include <string> +#include <vector> +#include <iosfwd> + +#include <butl/path> +#include <butl/optional> +#include <butl/tab-parser> +#include <butl/target-triplet> + +#include <bbot/export> + +#include <bbot/variable> + +namespace bbot +{ + // Build configuration matching specific machine names. Used by bbot + // controllers. + // + struct build_config + { + std::string machine_pattern; // Machine name pattern. + std::string name; // Configuration name. + + butl::optional<butl::target_triplet> target; + + variables vars; + }; + + using build_configs = std::vector<build_config>; + + // Parse buildtab stream or file. Throw tab_parsing on parsing error, + // ios::failure on the underlying OS error. + // + // buildtab consists of lines in the following format: + // + // <machine-name-pattern> <config-name> [<target>] [<config-vars>] + // + using butl::tab_parsing; + + LIBBBOT_EXPORT build_configs + parse_buildtab (std::istream&, const std::string& name); + + LIBBBOT_EXPORT build_configs + parse_buildtab (const butl::path&); +} + +#endif // BBOT_BUILD_CONFIG |