// file      : build/cxx/target -*- C++ -*-
// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
// license   : MIT; see accompanying LICENSE file

#ifndef BUILD_CXX_TARGET
#define BUILD_CXX_TARGET

#include <build/target>

namespace build
{
  namespace cxx
  {
    class hxx: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };

    class ixx: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };

    class txx: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };

    class cxx: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };

    //@@ TMP
    //
    class h: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };

    class c: public file
    {
    public:
      using file::file;

    public:
      virtual const target_type& type () const {return static_type;}
      static const target_type static_type;
    };
  }
}

#endif // BUILD_CXX_TARGET