diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-04-13 13:55:00 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-04-13 13:55:00 +0200 |
commit | 894813b993963de006d0a8aa7480b0403daaa87a (patch) | |
tree | bfc4f5a57da17089f93da5035e1d156b5adebd54 /libbuild2/cli/target.hxx | |
parent | e9a3804c2ea5972dd84a7d4759d4ea965c2490fb (diff) |
Move cli module to libbuild2-cli library
This is a temporary measure (until we unboundle this module) needed for
in-process configure support in bpkg.
Diffstat (limited to 'libbuild2/cli/target.hxx')
-rw-r--r-- | libbuild2/cli/target.hxx | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/libbuild2/cli/target.hxx b/libbuild2/cli/target.hxx new file mode 100644 index 0000000..8efb837 --- /dev/null +++ b/libbuild2/cli/target.hxx @@ -0,0 +1,61 @@ +// file : libbuild2/cli/target.hxx -*- C++ -*- +// license : MIT; see accompanying LICENSE file + +#ifndef LIBBUILD2_CLI_TARGET_HXX +#define LIBBUILD2_CLI_TARGET_HXX + +#include <libbuild2/types.hxx> +#include <libbuild2/utility.hxx> + +#include <libbuild2/target.hxx> + +#include <libbuild2/cxx/target.hxx> + +#include <libbuild2/cli/export.hxx> + +namespace build2 +{ + namespace cli + { + class LIBBUILD2_CLI_SYMEXPORT cli: public file + { + public: + cli (context& c, dir_path d, dir_path o, string n) + : file (c, move (d), move (o), move (n)) + { + dynamic_type = &static_type; + } + + public: + static const target_type static_type; + }; + + // Standard layout type compatible with group_view's const target*[3]. + // + struct cli_cxx_members + { + const cxx::hxx* h = nullptr; + const cxx::cxx* c = nullptr; + const cxx::ixx* i = nullptr; + }; + + class LIBBUILD2_CLI_SYMEXPORT cli_cxx: public mtime_target, + public cli_cxx_members + { + public: + cli_cxx (context& c, dir_path d, dir_path o, string n) + : mtime_target (c, move (d), move (o), move (n)) + { + dynamic_type = &static_type; + } + + virtual group_view + group_members (action) const override; + + public: + static const target_type static_type; + }; + } +} + +#endif // LIBBUILD2_CLI_TARGET_HXX |