aboutsummaryrefslogtreecommitdiff
path: root/libbutl/b.mxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2021-09-28 19:24:31 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-09-28 20:29:59 +0300
commitdf1ef68cd8e8582724ce1192bfc202e0b9aeaf0c (patch)
treeb731ca4c68e60c00c7e7d499dbf4868ee7b71f44 /libbutl/b.mxx
parent7a4fc37f264cdb67f2f83fa92703c869215bbc86 (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.mxx151
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]);
- }
-}