From c2b4305349ca855c497904282db354de56c74842 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 7 Aug 2018 14:59:07 +0200 Subject: Add support for default extension specification, trailing dot escaping For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair) --- build2/target-type.hxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'build2/target-type.hxx') diff --git a/build2/target-type.hxx b/build2/target-type.hxx index 408a520..37e511d 100644 --- a/build2/target-type.hxx +++ b/build2/target-type.hxx @@ -45,7 +45,9 @@ namespace build2 // // If the pattern function is not NULL, then it is used to amend a pattern // or match (reverse is false) and then, if the amendment call returned - // true, to reverse it in the resulting matches. + // true, to reverse it in the resulting matches. The pattern function for a + // non-directory target must first call target::split_name() if reverse is + // false. // struct target_type { @@ -60,7 +62,12 @@ namespace build2 const char*, bool search); - bool (*pattern) (const target_type&, const scope&, string&, bool reverse); + bool (*pattern) (const target_type&, + const scope&, + string& name, + optional& extension, + const location&, + bool reverse); void (*print) (ostream&, const target_key&); -- cgit v1.1