aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/target.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/cc/target.hxx')
-rw-r--r--build2/cc/target.hxx94
1 files changed, 0 insertions, 94 deletions
diff --git a/build2/cc/target.hxx b/build2/cc/target.hxx
deleted file mode 100644
index fd6f6d5..0000000
--- a/build2/cc/target.hxx
+++ /dev/null
@@ -1,94 +0,0 @@
-// file : build2/cc/target.hxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#ifndef BUILD2_CC_TARGET_HXX
-#define BUILD2_CC_TARGET_HXX
-
-#include <libbuild2/types.hxx>
-#include <libbuild2/utility.hxx>
-
-#include <libbuild2/target.hxx>
-
-namespace build2
-{
- namespace cc
- {
- // This is an abstract base target for all c-common header/source files.
- // We use this arrangement during rule matching to detect "unknown" (to
- // this rule) source/header files that it cannot handle but should not
- // ignore either. For example, a C link rule that sees a C++ source file.
- //
- class cc: public file
- {
- public:
- using file::file;
-
- public:
- static const target_type static_type;
- virtual const target_type& dynamic_type () const = 0;
- };
-
- // There is hardly a c-family compilation without a C header inclusion.
- // As a result, this target type is registered for any c-family module.
- //
- class h: public cc
- {
- public:
- using cc::cc;
-
- public:
- static const target_type static_type;
- virtual const target_type& dynamic_type () const {return static_type;}
- };
-
- // This one we define in cc but the target type is only registered by the
- // c module. This way we can implement rule chaining without jumping
- // through too many hoops (like resolving target type dynamically) but
- // also without relaxing things too much (i.e., the user still won't be
- // able to refer to c{} without loading the c module).
- //
- class c: public cc
- {
- public:
- using cc::cc;
-
- public:
- static const target_type static_type;
- virtual const target_type& dynamic_type () const {return static_type;}
- };
-
- // pkg-config file targets.
- //
- class pc: public file
- {
- public:
- using file::file;
-
- public:
- static const target_type static_type;
- };
-
- class pca: public pc // .static.pc
- {
- public:
- using pc::pc;
-
- public:
- static const target_type static_type;
- virtual const target_type& dynamic_type () const {return static_type;}
- };
-
- class pcs: public pc // .shared.pc
- {
- public:
- using pc::pc;
-
- public:
- static const target_type static_type;
- virtual const target_type& dynamic_type () const {return static_type;}
- };
- }
-}
-
-#endif // BUILD2_CC_TARGET_HXX