From 4bdf53837e010073de802070d4e6087410662d3e Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 24 Aug 2019 17:41:30 +0300 Subject: Move cc build system module to separate library --- build2/cc/target.hxx | 94 ---------------------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 build2/cc/target.hxx (limited to 'build2/cc/target.hxx') 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 -#include - -#include - -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 -- cgit v1.1