diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2021-01-21 11:00:32 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2021-01-21 11:00:32 +0200 |
commit | d51892e33a0fe69e743e02d9620312133a7ac61d (patch) | |
tree | 3901249c087f5e2bca40e8c6783f86c795c2b092 /libbuild2/cc/pkgconfig.cxx | |
parent | bbf3c05a08279cfa08aacd5ff721e58c9dab58f4 (diff) |
Use target name to derive binless library -l-name
Diffstat (limited to 'libbuild2/cc/pkgconfig.cxx')
-rw-r--r-- | libbuild2/cc/pkgconfig.cxx | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/libbuild2/cc/pkgconfig.cxx b/libbuild2/cc/pkgconfig.cxx index 75c7227..6a1b3c8 100644 --- a/libbuild2/cc/pkgconfig.cxx +++ b/libbuild2/cc/pkgconfig.cxx @@ -1479,13 +1479,25 @@ namespace build2 } else { - // Derive -l-name from the file name in a fuzzy, platform-specific - // manner. - // - n = l.path ().leaf ().base ().string (); + const path& p (l.path ()); - if (cclass != compiler_class::msvc) - strip_lib (); + if (p.empty ()) // Binless. + { + // For a binless library the target name is all it can possibly + // be. + // + n = l.name; + } + else + { + // Derive -l-name from the file name in a fuzzy, platform- + // specific manner. + // + n = p.leaf ().base ().string (); + + if (cclass != compiler_class::msvc) + strip_lib (); + } } os << " -l" << n; |