From 930ae81f85e5ee5ac37311f5e9c89000fbcb59a6 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 1 Aug 2019 16:17:09 +0300 Subject: Move bash build system module to separate library --- build2/bash/rule.hxx | 89 ---------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 build2/bash/rule.hxx (limited to 'build2/bash/rule.hxx') diff --git a/build2/bash/rule.hxx b/build2/bash/rule.hxx deleted file mode 100644 index c160bb7..0000000 --- a/build2/bash/rule.hxx +++ /dev/null @@ -1,89 +0,0 @@ -// file : build2/bash/rule.hxx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BUILD2_BASH_RULE_HXX -#define BUILD2_BASH_RULE_HXX - -#include -#include - -#include - -#include - -namespace build2 -{ - namespace bash - { - // Preprocess a bash script (exe{}) or module (bash{}) .in file that - // imports one or more bash modules. - // - // Note that the default substitution symbol is '@' and the mode is lax - // (think bash arrays). The idea is that '@' is normally used in ways that - // are highly unlikely to be misinterpreted as substitutions. The user, - // however, is still able to override both of these choices with the - // corresponding in.* variables (e.g., to use '`' and strict mode). - // - class in_rule: public in::rule - { - public: - in_rule (): rule ("bash.in 1", "bash.in", '@', false /* strict */) {} - - virtual bool - match (action, target&, const string&) const override; - - virtual recipe - apply (action, target&) const override; - - virtual target_state - perform_update (action, const target&) const override; - - virtual prerequisite_target - search (action, - const target&, - const prerequisite_member&, - include_type) const override; - - virtual optional - substitute (const location&, - action a, - const target&, - const string&, - bool) const override; - - string - substitute_import (const location&, - action a, - const target&, - const string&) const; - }; - - // Installation rule for bash scripts (exe{}) and modules (bash{}). Here - // we do: - // - // 1. Signal to in_rule that this is update for install. - // - // 2. Custom filtering of prerequisites. - // - class install_rule: public install::file_rule - { - public: - install_rule (const in_rule& in): in_ (in) {} - - virtual bool - match (action, target&, const string&) const override; - - virtual recipe - apply (action, target&) const override; - - virtual const target* - filter (action, const target&, const prerequisite&) const override; - - private: - const in_rule& in_; - }; - } -} - -#endif // BUILD2_BASH_RULE_HXX -- cgit v1.1