diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2021-09-28 19:24:31 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-09-28 20:29:59 +0300 |
commit | df1ef68cd8e8582724ce1192bfc202e0b9aeaf0c (patch) | |
tree | b731ca4c68e60c00c7e7d499dbf4868ee7b71f44 /libbutl/b.mxx | |
parent | 7a4fc37f264cdb67f2f83fa92703c869215bbc86 (diff) |
Get rid of C++ modules related code and rename *.mxx files to *.hxx
Diffstat (limited to 'libbutl/b.mxx')
-rw-r--r-- | libbutl/b.mxx | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/libbutl/b.mxx b/libbutl/b.mxx deleted file mode 100644 index cca9696..0000000 --- a/libbutl/b.mxx +++ /dev/null @@ -1,151 +0,0 @@ -// file : libbutl/b.mxx -*- C++ -*- -// license : MIT; see accompanying LICENSE file - -#ifndef __cpp_modules_ts -#pragma once -#endif - -// C includes. - -#ifndef __cpp_lib_modules_ts -#include <string> -#include <vector> -#include <utility> // move() -#include <cstddef> // size_tu -#include <cstdint> // uint16_t -#include <stdexcept> // runtime_error -#include <functional> -#endif - -// Other includes. - -#ifdef __cpp_modules_ts -export module butl.b; -#ifdef __cpp_lib_modules_ts -import std.core; -#endif -import butl.url; -import butl.path; -import butl.process; -import butl.optional; -import butl.project_name; -import butl.standard_version; -#else -#include <libbutl/url.mxx> -#include <libbutl/path.mxx> -#include <libbutl/process.mxx> -#include <libbutl/optional.mxx> -#include <libbutl/project-name.mxx> -#include <libbutl/standard-version.mxx> -#endif - -#include <libbutl/export.hxx> - -LIBBUTL_MODEXPORT namespace butl -{ - class LIBBUTL_SYMEXPORT b_error: public std::runtime_error - { - public: - // Build system program exit information. May be absent if the error - // occured before the process has been started. - // - // Can be used by the caller to decide if to print the error message to - // stderr. Normally, it is not required if the process exited normally - // with non-zero code, since presumably it has issued diagnostics. Note - // that the normal() function can be used to check for this. - // - optional<process_exit> exit; - - // Return true if the build2 process exited normally with non-zero code. - // - bool - normal () const {return exit && exit->normal () && !*exit;} - - explicit - b_error (const std::string& description, optional<process_exit> = nullopt); - }; - - // Run `b info: <project-dir>...` command and parse and return (via argument - // to allow appending and for error position; see below) the build2 projects - // information it prints to stdout. Return the empty list if the specified - // project list is empty. Throw b_error on error. Note that the size of the - // result vector can be used to determine which project information caused - // the error. - // - // Unless you need information that may come from external modules - // (operations, meta-operations, etc), pass false as the ext_mods argument, - // which results in passing --no-external-modules to the build2 program and - // speeds up its execution. - // - // You can also specify the build2 verbosity level, command line callback - // (see process_run_callback() for details), build program search details, - // and additional options. - // - // Note that version_string is only parsed to standard_version if a project - // uses the version module. Otherwise, standard_version is empty. - // - struct b_project_info - { - using url_type = butl::url; - - struct subproject - { - project_name name; // Empty if anonymous. - dir_path path; // Relative to the project root. - }; - - project_name project; - std::string version_string; - standard_version version; - std::string summary; - url_type url; - - dir_path src_root; - dir_path out_root; - - dir_path amalgamation; // Relative to project root and - // empty if not amalgmated. - std::vector<subproject> subprojects; - - std::vector<std::string> operations; - std::vector<std::string> meta_operations; - - std::vector<std::string> modules; - }; - - using b_callback = void (const char* const args[], std::size_t n); - - LIBBUTL_SYMEXPORT void - b_info (std::vector<b_project_info>& result, - const std::vector<dir_path>& projects, - bool ext_mods, - std::uint16_t verb = 1, - const std::function<b_callback>& cmd_callback = {}, - const path& program = path ("b"), - const dir_path& search_fallback = {}, - const std::vector<std::string>& options = {}); - - // As above but retrieve information for a single project. - // - inline b_project_info - b_info (const dir_path& project, - bool ext_mods, - std::uint16_t verb = 1, - const std::function<b_callback>& cmd_callback = {}, - const path& program = path ("b"), - const dir_path& search_fallback = {}, - const std::vector<std::string>& options = {}) - { - std::vector<b_project_info> r; - b_info (r, - std::vector<dir_path> ({project}), - ext_mods, - verb, - cmd_callback, - program, - search_fallback, - options); - - return std::move (r[0]); - } -} |