diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-01-06 06:59:31 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-01-06 07:24:42 +0200 |
commit | 6a242a8050edd0a33ea0e770a6eca4823a98b8d1 (patch) | |
tree | 85be41222d59fc94448e9788f85304c3fc29712d /libbuild2/variable.cxx | |
parent | ce684cd567eeb1dee211441a42689d299ee1da05 (diff) |
Factor reusable code to target_key::effective_name()
Diffstat (limited to 'libbuild2/variable.cxx')
-rw-r--r-- | libbuild2/variable.cxx | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/libbuild2/variable.cxx b/libbuild2/variable.cxx index 6f2812c..8ed9605 100644 --- a/libbuild2/variable.cxx +++ b/libbuild2/variable.cxx @@ -1857,39 +1857,8 @@ namespace build2 { if (!oname) { - const target_type& tt (*tk.type); - - // Note that if the name is not empty, then we always use that, even - // if the type is dir/fsdir. - // - if (tk.name->empty () && (tt.is_a<dir> () || tt.is_a<fsdir> ())) - { - oname = tk.dir->leaf ().string (); - } - // If we have the extension and the type expects the extension to be - // always specified explicitly by the user, then add it to the name. - // - // Overall, we have the following cases: - // - // 1. Extension is fixed: man1{}. - // - // 2. Extension is always specified by the user: file{}. - // - // 3. Default extension that may be overridden by the user: hxx{}. - // - // 4. Extension assigned by the rule but may be overridden by the - // user: obje{}. - // - // By default we only match the extension for (2). - // - else if (tk.ext && !tk.ext->empty () && - (tt.fixed_extension == &target_extension_none || - tt.fixed_extension == &target_extension_must)) - { - oname = *tk.name + '.' + *tk.ext; - } - else - oname = string (); // Use tk.name as is. + oname = string (); + tk.effective_name (*oname); } return oname->empty () ? *tk.name : *oname; |