From 5cbf3653ff25a42577e9473b447a4b9afb128875 Mon Sep 17 00:00:00 2001 From: Byoungchan Lee Date: Tue, 23 Jan 2018 01:22:15 +0900 Subject: 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 --- Source/cmComputeLinkInformation.cxx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index fb13a58..18cca5a 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -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 += "$"; -- cgit v0.12