cmComputeLinkInformation: Better RPATH detection for versioned libraries.

Some libraries uses the non-conventional SONAME scheme like
`libssl.so.1.1` or `libboost_system.so.1.64.0`, but CMake didn't count on
such versioned libraries. This commit modify regular expressions to match
relaxed format of shared library name for determining various linker options,
especially `RPATH`.
Note that support for one component has been available since v2.8.12.

Fixes: #15938
This commit is contained in:
Byoungchan Lee 2018-01-23 01:22:15 +09:00
parent b058d92b33
commit 5cbf3653ff

View File

@ -913,11 +913,9 @@ std::string cmComputeLinkInformation::CreateExtensionRegex(
// Finish the list.
libext += ")";
// Add an optional OpenBSD version component.
if (this->OpenBSD) {
libext += "(\\.[0-9]+\\.[0-9]+)?";
} else if (type == LinkShared) {
libext += "(\\.[0-9]+)?";
// Add an optional OpenBSD-style version or major.minor.version component.
if (this->OpenBSD || type == LinkShared) {
libext += "(\\.[0-9]+)*";
}
libext += "$";