aboutsummaryrefslogtreecommitdiff
path: root/libbutl/b.mxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbutl/b.mxx')
-rw-r--r--libbutl/b.mxx115
1 files changed, 0 insertions, 115 deletions
diff --git a/libbutl/b.mxx b/libbutl/b.mxx
deleted file mode 100644
index 9e12711..0000000
--- a/libbutl/b.mxx
+++ /dev/null
@@ -1,115 +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 <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 the build2
- // project information it prints to stdout. Throw b_error on 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.
- //
- 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;
- 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;
- };
-
- using b_callback = void (const char* const args[], std::size_t n);
-
- LIBBUTL_SYMEXPORT 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 = {});
-}