// file : build/cli/target -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #ifndef BUILD_CLI_TARGET #define BUILD_CLI_TARGET #include #include namespace build { namespace cli { class cli: public file { public: using file::file; public: virtual const target_type& type () const {return static_type;} static const target_type static_type; }; class cli_cxx: public target { public: using target::target; target* m[3] {nullptr, nullptr, nullptr}; cxx::hxx* h () const {return static_cast (m[0]);} cxx::cxx* c () const {return static_cast (m[1]);} cxx::ixx* i () const {return static_cast (m[2]);} void h (cxx::hxx& t) {m[0] = &t;} void c (cxx::cxx& t) {m[1] = &t;} void i (cxx::ixx& t) {m[2] = &t;} virtual group_view group_members (action) const; public: virtual const target_type& type () const {return static_type;} static const target_type static_type; }; } } #endif // BUILD_CLI_TARGET