aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build2/in/rule.cxx4
-rw-r--r--build2/in/rule.hxx7
2 files changed, 8 insertions, 3 deletions
diff --git a/build2/in/rule.cxx b/build2/in/rule.cxx
index 5988566..1495c64 100644
--- a/build2/in/rule.cxx
+++ b/build2/in/rule.cxx
@@ -146,7 +146,7 @@ namespace build2
// Substitution symbol.
//
- char sym ('$');
+ char sym (symbol_);
if (const string* s = cast_null<string> (t["in.symbol"]))
{
if (s->size () == 1)
@@ -157,7 +157,7 @@ namespace build2
// Substitution mode.
//
- bool strict (true);
+ bool strict (strict_);
if (const string* s = cast_null<string> (t["in.substitution"]))
{
if (*s == "lax")
diff --git a/build2/in/rule.hxx b/build2/in/rule.hxx
index e588fd9f..a68e80c 100644
--- a/build2/in/rule.hxx
+++ b/build2/in/rule.hxx
@@ -19,7 +19,8 @@ namespace build2
class rule: public build2::rule
{
public:
- rule () {}
+ rule (char symbol = '$', bool strict = true)
+ : symbol_ (symbol), strict_ (strict) {}
virtual bool
match (action, target&, const string&) const override;
@@ -43,6 +44,10 @@ namespace build2
target_state
perform_update (action, const target&) const;
+
+ protected:
+ char symbol_;
+ bool strict_;
};
}
}