diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-12-02 14:24:10 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-12-02 14:45:13 +0200 |
commit | becea217436a79b7ef37a023da6cb4c560225a71 (patch) | |
tree | 5017f0ad3bc4d78ad737f4dc2b8b2036bb5f5664 /build/parser.cxx | |
parent | 685fe65f6b26b9e57c3d10cfe68c66d8baff8a68 (diff) |
Redo extension derivation for file{}, doc{}, and cli{}
We now first check the 'extension' variable, then use the default.
Diffstat (limited to 'build/parser.cxx')
-rw-r--r-- | build/parser.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/build/parser.cxx b/build/parser.cxx index c896c71..ee22254 100644 --- a/build/parser.cxx +++ b/build/parser.cxx @@ -818,6 +818,8 @@ namespace build return r; } + constexpr const char derived_ext_var[] = "extension"; + void parser:: define (token& t, token_type& tt) { @@ -852,6 +854,11 @@ namespace build dt->base = bt; dt->factory = &derived_factory; + // Override extension derivation function: we most likely don't want + // to use the same default as our base (think cli: file). + // + dt->extension = &target_extension_var<derived_ext_var, nullptr>; + target_type& rdt (*dt); // Save a non-const reference to the object. auto pr (scope_->target_types.emplace (dn, target_type_ref (move (dt)))); |